CN107911210B - 视频切片加密、解密方法及相应装置 - Google Patents
视频切片加密、解密方法及相应装置 Download PDFInfo
- Publication number
- CN107911210B CN107911210B CN201710987195.7A CN201710987195A CN107911210B CN 107911210 B CN107911210 B CN 107911210B CN 201710987195 A CN201710987195 A CN 201710987195A CN 107911210 B CN107911210 B CN 107911210B
- Authority
- CN
- China
- Prior art keywords
- video segment
- frame
- data
- video
- encryption
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0464—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明涉及视频切片加密、解密方法及装置。所述视频切片加密方法包括:基于待加密的视频切片及其对应的第一加密密钥生成视频切片对应的第二加密密钥;将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据;将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密。本发明使得没有原生AES加密/解密函数的播放平台也能够对视频文件进行AES加密/解密,并且加密/解密效率高,并且节省CPU消耗。
Description
技术领域
本发明涉及加解密技术领域,特别是涉及视频切片加密、解密方法及相应装置。
背景技术
在各大视频网站目前所使用的传输协议中,流媒体传输协议(Http livestreaming,简称HLS)占据了重要的地位。HLS协议是基于超文本传输协议Http的流媒体传输协议,HLS协议将容量巨大的连续媒体数据进行分段,分割为数量众多的小文件进行传递,迎合了网页服务器的文件传输性,采用一个不断更新的轻量级索引文件来控制分割后小文件的下载和播放,可以实现流媒体的直播和点播。
HLS协议提供的加密方式为AES-128,但是在Windows平台鲜有播放平台原生支持HLS协议,例如目前主流的播放平台Flash player。这类播放平台由于没有原生AES加密/解密函数,无法对流媒体数据进行AES加密/解密。
为解决该问题,有的播放平台引入了AS3编写的AES CBC加密/解密函数来克服该问题。然而AES CBC加密/解密函数的性能只能达到200KB每秒,加上音视频解析和解码带来额外消耗,导致要在Flash player等没有提供原生AES加密/解密函数的播放平台中基于AES加密协议对视频数据进行加密输出,或者播放基于AES加密协议的直播或点播视频时,加密/解密效率低。
发明内容
基于此,本发明提供了视频切片加密、解密方法及相应装置,使得没有原生AES加密/解密函数的播放平台也能够对视频数据进行AES加密/解密,并且加密/解密效率高。
本发明方案包括:
一种视频切片加密方法,包括:
基于待加密的视频切片及其对应的第一加密密钥生成视频切片对应的第二加密密钥;
将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据;
将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密。
其中,所述基于待加密的视频切片及其对应的第一加密密钥生成视频切片对应的第二加密密钥的步骤包括:
解析并分离所述视频切片以得到若干视频帧和若干音频帧;
按照各视频帧和各音频帧在当前视频切片中的先后位置进行遍历,将检索到的第一个帧数据大小大于32字节的帧作为目标帧;
将该目标帧的前32个字节与所述第一加密密钥进行拼接,并对拼接结果执行哈希处理,得到的数据作为当前视频切片对应的第二加密密钥。
其中,将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据的步骤包括:
将所述第二加密密钥作为RC4加密算法的初始密钥,产生RC4加密对象,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密;
依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行加密;同时帧的元数据原样保留,得到当前视频切片的对应帧数据的加密数据。
其中,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密之前,还包括:
使用所述RC4加密对象对预设的满足设定长度的字节进行加密并丢弃结果。
其中,所述第一加密密钥为随机生成的一串字符,属于同一视频文件的多个视频切片对应同一个第一加密密钥。
其中,所述帧的元数据包括帧头、帧尾、TS封包、PES头。
一种视频切片解密方法,包括:
基于待解密的视频切片及其对应的第一解密密钥生成视频切片对应的第二解密密钥;
将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据;
将所述视频切片的对应帧数据的加密数据部分替换为解密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的解密。
其中,所述基于待解密的视频切片及其对应的第一解密密钥生成视频切片对应的第二解密密钥的步骤包括:
解析并分离所述视频切片以得到若干视频帧和若干音频帧;
按照各视频帧和各音频帧在当前视频切片中的先后位置进行遍历,将检索到的第一个帧数据大小大于32字节的帧作为目标帧;
将该目标帧的前32个字节与所述第一解密密钥进行拼接,并对拼接结果执行哈希处理,得到的数据作为当前视频切片对应的第二解密密钥。
其中,将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据的步骤包括:
将所述第二解密密钥作为RC4解密算法的初始密钥,产生RC4解密对象,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密;
依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行解密;同时帧的元数据原样保留,得到当前切片的对应帧数据的解密数据。
其中,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密之前,还包括:
使用所述RC4解密对象对预设的满足设定长度的字节进行解密并丢弃结果。
其中,所述第一解密密钥为随机生成的一串字符,属于同一视频文件的多个视频切片对应同一个第一加密密钥。
一种视频切片加密装置,包括:
加密密钥生成模块,用于基于待加密的视频切片及其对应的第一加密密钥生成视频切片对应的第二加密密钥;
加密模块,用于将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据;
加密视频切片生成模块,用于将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密。
一种视频切片解密装置,包括:
解密密钥生成模块,用于基于待解密的视频切片及其对应的第一解密密钥生成视频切片对应的第二解密密钥;
解密模块,用于将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据;
解密视频切片生成模块,用于将所述视频切片的对应帧数据的加密数据部分替换为解密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的解密。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一方法的步骤。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一方法的步骤.
上述技术方案,对待加密/解密的视频文件按照切片进行加密/解密,并且每个切片拥有与长期加密/解密密钥关联而又无法反推出长期加密/解密密钥的切片密钥,加大了数据破解的难度;同时RC4算法也可以比较高效地在Flash player等播放平台中执行,因此加密/解密效率较高,并且节省CPU消耗。
附图说明
图1为一实施例的视频切片加密方法的示意性流程图;
图2为另一实施例的视频切片加密方法的示意性流程图;
图3为一实施例的视频切片解密方法的示意性流程图;
图4为一实施例的视频切片加密装置的示意性结构图;
图5为一实施例的视频切片解密装置的示意性结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。
图1为一实施例的视频切片加密方法的示意性流程图;如图1所示,本实施例中的视频切片加密方法包括步骤:
S11,基于待加密的视频切片及其对应的第一加密密钥生成视频切片对应的第二加密密钥。
即获取预置的待加密视频文件对应的第一加密密钥,获取待加密视频文件对应的切片;根据各切片和所述第一加密密钥,分别生成各切片对应的第二加密密钥;所述第一加密密钥与待加密视频文件对应;所述第二加密密钥与所述切片一一对应。
其中,视频文件对应的切片指的是:完整视频数据照设定时间间隔和关键帧切割成的一系列数据帧和附加的额外帧头和帧尾组成。对于视频数据来说,其对应的每个切片可以完整分离成一组视频帧和一组音频帧。
所述第一加密密钥也称作长期加密密钥,所述第一加密密钥为通过安全渠道存储和分发的与待加密的视频文件整体对应的密钥,即所述第一加密密钥适用于整个视频文件,一个视频文件对应一个第一加密密钥。
可选地,所述第一加密密钥可为随机生成的一串字符,以提高安全性。
S12,将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据。
可选地,将所述第二加密密钥作为RC4加密算法的初始密钥,对对应的切片的对应帧数据的进行加密,得到所述切片的加密数据。
所述第二加密密钥派生自整个视频文件的长期加密密钥和对应的切片,因此所述第二加密密钥与所述切片一一对应,多个切片则对应多个第二加密密钥。
RC4是一种对称加密算法,使用的密钥为单钥(或称为私钥)。不同于DES的是,RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。RC4算法的特点是算法简单,运行速度快,而且密钥长度是可变的,在如今技术支持的前提下,当密钥长度为128比特时,用暴力法搜索密钥已经不太可行,所以可以预见RC4的密钥范围可以在今后相当长的时间里抵御暴力搜索密钥的攻击。RC4算法的关键是根据明文和密钥生成相应的密钥流,密钥流的长度和明文的长度是对应的,也就是说明文的长度是500字节,那么密钥流也是500字节,加密生成的密文也是500字节,密文第i字节=明文第i字节^密钥流第i字节。
S13,将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密。
上述实施例中,将所述第二加密密钥作为初始密钥对所述视频切片进行加密,无需将视频切片的所有帧数据进行替换,只需替换经过了加密的数据部分替换为对应的加密数据,保留视频切片中未加密的其他帧。
进一步地,根据各视频切片的加密结果可得到所述视频文件的加密结果。
通过上述实施例的视频切片加密方法,对待加密的视频文件按照切片进行加密,并且每个切片拥有与长期加密密钥关联而又无法反推出长期加密密钥的切片密钥(即第二加密密钥),加大了加密数据破解的难度;同时RC4算法也可以比较高效的在Flash player等播放平台中执行,因此加密效率较高。
在一实施例中,生成视频文件各切片对应的第二加密密钥的方式可包括:
解析当前切片,从当前切片中分离得到若干视频帧和若干音频帧;按照视频帧和音频帧在当前切片中的先后位置进行遍历,得到第一个大小大于32个字节的帧,记为目标帧;获取所述目标帧的前32个字节,将所述前32个字节与所述第一加密密钥进行拼接,对拼接结果执行哈希(Hash)处理,得到的数据作为当前切片对应的第二加密密钥。
其中,将所述前32个字节与所述第一加密密钥进行拼接既可以是目标帧的前32个字节在前,第一加密密钥拼接在后;或者是第一加密密钥在前,目标帧的前32个字节拼接在后。
Hash也翻译作“散列”,是把任意长度的输入(又叫做预映射),通过散列算法变换成固定长度的输出,该输出就是散列值。
可选地,可对拼接结果执行MD5处理,得到16个字节的数据,作为当前切片对应的第二加密密钥。MD5(Message Digest Algorithm 5,消息摘要算法第五版)为目前应用广泛的Hash算法,用以提供消息的完整性保护。
按照上述方式,可对视频文件包含的各切片分别生成对应第二加密密钥,使得每个切片拥有与长期加密密钥关联而又无法反推出长期加密密钥的切片密钥,加大了加密数据破解的难度。
在一实施例中,根据第二加密密钥对切片进行加密的实现方式可包括:
将所述第二加密密钥作为RC4加密算法的初始密钥,产生RC4加密对象,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密,然后依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行加密。将当前切片中经过RC4加密的帧数据替换成对应的加密后的数据,其他未经RC4加密的帧数据和帧的元数据原样保留,得到当前切片对应的加密数据。目标帧前通常是帧头或者TS PACKET头部和PES头部,不属于帧数据,无需RC4加密处理,即所述帧的元数据包括帧头、帧尾、TS封包、PES头,无需加密处理。需要说明的是,所述目标帧的前32个字节也无需执行RC4加密处理。
在一实施例中,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密之前,还包括步骤:使用所述RC4加密对象对预设的满足设定长度的字节进行加密并丢弃结果。优选地,设定长度为3072字节。即在将所述第二加密密钥作为RC4加密算法的初始密钥,产生RC4加密对象之后,先采用该RC4加密对象对任意3072个字节数据进行加密并丢弃结果,然后再对所述目标帧中所述前32个字节之后的帧数据进行加密,目的是跳过RC4加密算法的前3072个字节的加密不稳定性,提高破解难度。可以理解的,根据实际情况,还可对所述设定长度的具体字节大小进行适应性的调整。
上述实施例的视频切片加密方法,和现有视频加密技术相比,具有以下优点:对待加密的视频文件按照切片进行加密,每个切片拥有与长期加密密钥关联而又无法反推出长期加密密钥的切片密钥,加大了数据破解的难度;RC4算法和MD5哈希算法可以比较高效的在Flash player等平台中完成,加密效率高。
图2为本发明另一实施例的视频切片加密方法的示意性流程图,所述实施例中以对输入的视频的切片进行加密为例,如图2所示,所述实施例中的视频切片加密方法包括步骤:
S201:准备好视频的长期加密密钥;
所述长期加密密钥为随机生成的一串字符,属于同一视频文件的多个视频切片对应同一个长期加密密钥。
S202:输入待加密的视频切片;
S203:开始扫描并解析输入的切片文件中的音视频帧;
S204:对输入的每一帧进行判断,直到帧大小大于32个字节,这一帧记为F1帧(即目标帧);
S205:将F1帧前的所有未处理字节写入输出切片(即输入切片对应的加密切片);
S206:将F1帧的前32个字节和S201准备好的长期加密密钥拼接,对拼接结果执行MD5哈希算法,得到16字节长度的结果作为当前切片文件的切片密钥;
S207:F1帧前未处理的字节,通常是帧头或者TS PACKET头部和PES头部,这些部分不属于帧数据,无需处理,特殊地,F1帧数据的前32字节也无需加密处理,将这些无需处理的字节直接写入输出切片;
S208:将S206中产生的切片密钥作为RC4加密对象的密钥,并将该RC4加密对象对任意3072字节数据加密并丢弃结果,目的是跳过RC4加密算法的前3072个字节,提高破解难度;
S209:采用RC4加密对象对F1帧的剩余数据进行加密,加密后的结果写入输出切片;
S210:继续扫描并解析F1帧后的音视频帧,扫描过程不属于音视频帧数据的字节全部原样写入输出切片(S211);
S212:如果输入视频切片扫描结束,则视频加密结束;如果没有结束,则继续将扫描解析到的音视频帧数据使用RC4对象进行加密(S213),加密后的结果写入输出切片(S214),返回执行步骤S210。
图2仅表述对完整视频的一个切片的处理过程,其它切片的处理过程雷同。循环整个过程,直到完整视频的所有切片处理完毕,整个视频的加密完成。
和现有视频加密技术相比,上述实施例的加密视频数据的方法,具有以下优点:对待加密的视频文件按照切片进行加密,每个切片拥有与长期加密密钥关联而又无法反推出长期加密密钥的切片密钥,加大了数据破解的难度;RC4算法和MD5哈希算法可以比较高效的在Flash player等平台中完成,加密效率高。
图3为一实施例的视频切片解密方法的示意性流程图;如图3所示,本实施例中的视频切片解密方法包括步骤:
S31,基于待解密的视频切片及其对应的第一解密密钥生成视频切片对应的第二解密密钥。
获取预置的待解密视频文件对应的第一解密密钥,获取待解密视频文件对应的切片;根据各切片和所述第一解密密钥,分别生成各切片对应的第二解密密钥;所述第一解密密钥与待解密视频文件对应;所述第二解密密钥与所述切片一一对应。
其中,视频切片指的是:完整视频文件照设定时间间隔和关键帧切割成的一系列数据帧和附加的额外帧头和帧尾组成。对于视频文件来说,其对应的每个切片可以完整分离成一组视频帧和一组音频帧。
所述第一解密密钥也称作长期解密密钥,所述第一解密密钥为通过安全渠道存储和分发的与待解密的视频文件整体对应的密钥,即所述第一解密密钥适用于整个视频文件,一个视频文件对应的多个视频切片对应一个第一解密密钥。在解密过程中采用的长期解密密钥可以与对应加密过程中采用的长期加密密钥相同。
可选地,所述第一解密密钥可为随机生成的一串字符,以提高安全性。
S32,将所述第二解密密钥作为RC4解密算法的初始密钥,对对应的切片进行解密,得到所述切片的解密数据。
所述第二解密密钥派生自整个视频文件的长期解密密钥和对应的切片,因此所述第二解密密钥与所述切片一一对应,多个切片则对应多个第二解密密钥。
S33,将所述视频切片的对应帧数据的加密数据部分替换为解密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的解密。
进一步地,根据各切片的解密结果得到所述视频文件的解密结果。
通过上述实施例的解密视频切片的方法,对待解密的视频文件按照切片进行解密,每个切片拥有与长期解密密钥关联而又无法反推出长期解密密钥的切片解密密钥(即第二解密密钥),加大了数据安全性;同时RC4算法也可以比较高效的在Flash player等播放平台中执行,因此解密效率较高。
在一实施例中,生成视频切片对应的第二解密密钥的方式可包括:
解析当前切片,从当前切片中分离得到若干视频帧和若干音频帧;按照视频帧和音频帧在当前切片中的先后位置进行遍历,得到第一个大小大于32个字节的帧,记为目标帧;获取所述目标帧的前32个字节,将所述前32个字节与所述第一解密密钥进行拼接,对拼接结果执行哈希(Hash)处理,得到的数据作为当前切片对应的第二解密密钥。
其中,将所述前32个字节与所述第一解密密钥进行拼接既可以是目标帧的前32个字节在前,第一解密密钥拼接在后;也可以是第一解密密钥在前,目标帧的前32个字节拼接在后。
Hash也翻译作“散列”,是把任意长度的输入(又叫做预映射),通过散列算法变换成固定长度的输出,该输出就是散列值。
可选地,可对拼接结果执行MD5处理,得到16个字节的数据,作为当前切片对应的第二解密密钥。MD5为目前应用广泛的Hash算法,用以提供消息的完整性保护。
按照上述方式,可对视频文件包含的各切片分别生成对应第二解密密钥,使得每个切片拥有与长期解密密钥关联而又无法反推出长期解密密钥的切片解密密钥。
在一实施例中,根据第二解密密钥对切片进行解密的实现方式可包括:
将所述第二解密密钥作为RC4解密算法的初始密钥,产生RC4解密对象,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密,然后依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行解密。将当前切片中经过RC4解密的帧数据替换成对应的解密后的数据,其他未经RC4解密的帧数据和帧的元数据原样保留,得到当前切片对应的解密数据。目标帧前通常是帧头或者TS PACKET头部和PES头部,不属于帧数据,称为帧的元数据,无需RC4解密处理,需要说明的是,所述目标帧的前32字节也无需执行RC4解密处理。
在一实施例中,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密之前,还包括步骤:使用所述RC4解密对象对预设的满足设定长度的字节进行解密并丢弃结果。优选地,设定长度为3072字节。即在将所述第二解密密钥作为RC4解密算法的初始密钥,产生RC4解密对象之后,先采用该RC4解密对象对任意3072个字节数据进行解密并丢弃结果,然后再对所述目标帧中所述前32个字节之后的帧数据进行解密,目的是跳过RC4解密算法的前3072个字节的解密不稳定性,提高破解难度。可以理解的,根据实际情况,还可对所述设定长度的具体字节大小进行适应性的调整。
上述实施例的解密视频数据的方法,和现有视频解密技术相比,具有以下优点:对待解密的视频文件按照切片进行解密,每个切片拥有与长期解密密钥关联而又无法反推出长期解密密钥的切片解密密钥,加大了数据破解的难度;RC4算法和MD5哈希算法可以比较高效地在Flash player等平台中完成,解密效率高。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。基于与上述实施例中的视频切片加密方法相同的思想,本发明还提供视频切片加密装置,该装置可用于执行上述视频切片加密方法。为了便于说明,视频切片加密装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
图4为本发明一实施例的视频切片加密装置的示意性结构图,所述实施例的视频切片加密装置包括:
加密密钥生成模块410,用于基于待加密的视频切片及其对应的第一加密密钥生成视频切片对应的第二加密密钥;
加密模块420,用于将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据;
以及,加密视频切片生成模块430,用于将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密。
在一可选实施例中,加密密钥生成模块410包括加密切片密钥生成子模块,用于解析当前切片,从当前切片中分离得到若干视频帧和若干音频帧;按照视频帧和音频帧在当前切片中的先后位置进行遍历,得到第一个大小大于32个字节的帧,记为目标帧;获取所述目标帧的前32个字节,将所述前32个字节与所述第一加密密钥进行拼接,对拼接结果执行哈希处理,得到的数据作为当前切片对应的第二加密密钥。
可选地,通过加密切片密钥生成子模块对拼接结果执行MD5处理,得到16个字节的数据,作为当前切片对应的第二加密密钥。
在一可选实施例中,所述加密模块420,具体用于将所述第二加密密钥作为RC4加密算法的初始密钥,产生RC4加密对象,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密,然后依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行加密;将当前切片中经过RC4加密的帧数据替换成对应的加密后的数据,其他未经RC4加密的帧数据原样保留,得到当前切片对应的加密数据。
在一可选实施例中,所述加密模块420,还用于在使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密之前,使用所述RC4加密对象对预设的满足设定长度的字节进行加密并丢弃结果。
在一可选实施例中,所述第一加密密钥为随机生成的一串字符,属于同一视频文件的多个视频切片对应同一个第一加密密钥。
通过上述实施例的视频切片加密装置,对待加密的视频文件按照切片进行加密,并且每个切片拥有与长期加密密钥关联而又无法反推出长期加密密钥的切片密钥,加大了数据破解的难度;RC4算法和MD5哈希算法可以比较高效地在Flash player等平台中完成,加密效率高。
基于与上述实施例中的视频切片解密方法相同的思想,本发明还提供视频切片解密装置,该装置可用于执行上述视频切片解密方法。为了便于说明,视频切片解密装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
图5为本发明一实施例的视频切片解密装置的示意性结构图,所述实施例的视频切片解密装置包括:
解密密钥生成模块510,用于基于待解密的视频切片及其对应的第一解密密钥生成视频切片对应的第二解密密钥;
解密模块520,用于将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据;
以及,解密视频切片生成模块530,将所述视频切片的对应帧数据的加密数据部分替换为解密数据,同时保留视频切片各帧的元数据和未加密的帧数据,以完成对所述视频切片的解密。
在一可选实施例中,解密密钥生成模块510中包括解密切片密钥生成子模块,用于解析当前切片,从当前切片中分离得到若干视频帧和若干音频帧;按照视频帧和音频帧在当前切片中的先后位置进行遍历,得到第一个大小大于32个字节的帧,记为目标帧;获取所述目标帧的前32个字节,将所述前32个字节与所述第一解密密钥进行拼接,对拼接结果执行哈希处理,得到的数据作为当前切片对应的第二解密密钥。
可选地,解密切片密钥生成子模块对拼接结果执行MD5处理,得到16个字节的数据,作为当前切片对应的第二解密密钥。
在一可选实施例中,所述解密模块520,具体用于将所述第二解密密钥作为RC4解密算法的初始密钥,产生RC4解密对象,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密,然后依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行解密;将当前切片中经过RC4解密的帧数据替换成对应的解密后的数据,其他未经RC4解密的帧数据原样保留,得到当前切片对应的解密数据。
进一步地,在一可选实施例中,所述解密模块520,还用于在使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密之前,使用所述RC4解密对象对预设的满足设定长度的字节进行解密并丢弃结果。
在一可选实施例中,所述第一解密密钥为随机生成的一串字符,且与加密时采用的第一加密密钥相同。
通过上述实施例的解密媒体数据的装置,对待解密的视频文件按照切片进行解密,每个切片拥有与长期解密密钥关联而又无法反推出长期解密密钥的切片密钥,加大了数据破解的难度;RC4算法和MD5哈希算法可以比较高效地在Flash player等平台中完成,解密效率高。
需要说明的是,上述示例的装置的实施方式中,各模块之间的信息交互、执行过程等内容,由于与本发明前述方法实施例基于同一构思,其带来的技术效果与本发明前述方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
此外,上述示例的装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。所述程序在执行时,可执行如上述各方法的实施例的全部或部分步骤。此外,所述存储介质还可设置于一种计算机设备中,所述计算机设备中还包括处理器,所述处理器执行所述存储介质中的程序时,能够实现上述各方法的实施例的全部或部分步骤。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。可以理解,其中所使用的术语“第一”、“第二”等在本文中用于区分对象,但这些对象不受这些术语限制。
以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种视频切片加密方法,其特征在于,包括:
基于待加密的视频切片中目标帧包含的一部分帧信息以及所述视频切片所属视频文件对应的第一加密密钥生成视频切片对应的第二加密密钥;
将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据;
将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密;所述未加密的其他帧数据包括所述目标帧中的所述一部分帧信息。
2.根据权利要求1所述的视频切片加密方法,其特征在于,所述基于待加密的视频切片中目标帧包含的一部分帧信息以及所述视频切片对应的第一加密密钥生成视频切片对应的第二加密密钥的步骤包括:
解析并分离所述视频切片以得到若干视频帧和若干音频帧;
按照各视频帧和各音频帧在当前视频切片中的先后位置进行遍历,将检索到的第一个帧数据大小大于32字节的帧作为目标帧;
将该目标帧的前32个字节与所述第一加密密钥进行拼接,并对拼接结果执行哈希处理,得到的数据作为当前视频切片对应的第二加密密钥。
3.根据权利要求2所述的视频切片加密方法,其特征在于,将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据的步骤包括:
将所述第二加密密钥作为RC4加密算法的初始密钥,产生RC4加密对象,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密;
依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行加密;同时帧的元数据原样保留,得到当前视频切片的对应帧数据的加密数据。
4.根据权利要求3所述的视频切片加密方法,其特征在于,使用所述RC4加密对象对所述目标帧中所述前32个字节之后的帧数据进行加密之前,还包括:
使用所述RC4加密对象对预设的满足设定长度的字节进行加密并丢弃结果。
5.根据权利要求1或2所述的视频切片加密方法,其特征在于,所述第一加密密钥为随机生成的一串字符,属于同一视频文件的多个视频切片对应同一个第一加密密钥。
6.根据权利要求1或3所述的视频切片加密方法,其特征在于,所述帧的元数据包括帧头、帧尾、TS封包、PES头中至少一个。
7.一种视频切片解密方法,其特征在于,包括:
基于待解密的视频切片中目标帧包含的一部分帧信息以及所述视频切片所属视频文件对应的第一解密密钥生成视频切片对应的第二解密密钥;
将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据;
将所述视频切片的对应帧数据的加密数据部分替换为解密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的解密;所述未加密的其他帧数据包括所述目标帧中的所述一部分帧信息。
8.根据权利要求7所述的视频切片解密方法,其特征在于,所述基于待解密的视频切片中目标帧包含的一部分帧信息以及所述视频切片所属视频文件对应的第一解密密钥生成视频切片对应的第二解密密钥的步骤包括:
解析并分离所述视频切片以得到若干视频帧和若干音频帧;
按照各视频帧和各音频帧在当前视频切片中的先后位置进行遍历,将检索到的第一个帧数据大小大于32字节的帧作为目标帧;
将该目标帧的前32个字节与所述第一解密密钥进行拼接,并对拼接结果执行哈希处理,得到的数据作为当前视频切片对应的第二解密密钥。
9.根据权利要求8所述的视频切片解密方法,其特征在于,将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据的步骤包括:
将所述第二解密密钥作为RC4解密算法的初始密钥,产生RC4解密对象,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密;
依次对当前切片中所述目标帧之后的所有视频帧和音频帧的帧数据进行解密;同时帧的元数据原样保留,得到当前切片的对应帧数据的解密数据。
10.根据权利要求9所述的视频切片解密方法,其特征在于,使用所述RC4解密对象对所述目标帧中所述前32个字节之后的帧数据进行解密之前,还包括:
使用所述RC4解密对象对预设的满足设定长度的字节进行解密并丢弃结果。
11.根据权利要求7或8所述的视频切片解密方法,其特征在于,所述第一解密密钥为随机生成的一串字符,属于同一视频文件的多个视频切片对应同一个第一加密密钥。
12.一种视频切片加密装置,其特征在于,包括:
加密密钥生成模块,用于基于待加密的视频切片中目标帧包含的一部分帧信息以及所述视频切片所属视频文件对应的第一加密密钥生成视频切片对应的第二加密密钥;
加密模块,用于将所述第二加密密钥作为初始密钥,对所述视频切片的对应帧数据进行加密,得到所述视频切片的对应帧数据的加密数据;
加密视频切片生成模块,用于将所述视频切片的对应帧数据部分替换为对应的加密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的加密;所述未加密的其他帧数据包括所述目标帧中的所述一部分帧信息。
13.一种视频切片解密装置,其特征在于,包括:
解密密钥生成模块,用于基于待解密的视频切片中目标帧包含的一部分帧信息以及所述视频切片所属视频文件对应的第一解密密钥生成视频切片对应的第二解密密钥;
解密模块,用于将所述第二解密密钥作为初始密钥,对所述视频切片的对应帧数据进行解密,得到所述视频切片的对应帧数据的解密数据;
解密视频切片生成模块,用于将所述视频切片的对应帧数据的加密数据部分替换为解密数据,同时保留视频切片各帧的元数据和未加密的其他帧数据,以完成对所述视频切片的解密;所述未加密的其他帧数据包括所述目标帧中的所述一部分帧信息。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至11任一所述方法的步骤。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至11任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710987195.7A CN107911210B (zh) | 2017-10-20 | 2017-10-20 | 视频切片加密、解密方法及相应装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710987195.7A CN107911210B (zh) | 2017-10-20 | 2017-10-20 | 视频切片加密、解密方法及相应装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107911210A CN107911210A (zh) | 2018-04-13 |
CN107911210B true CN107911210B (zh) | 2019-01-22 |
Family
ID=61841457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710987195.7A Expired - Fee Related CN107911210B (zh) | 2017-10-20 | 2017-10-20 | 视频切片加密、解密方法及相应装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107911210B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040087B (zh) * | 2018-08-15 | 2021-12-07 | 咪咕视讯科技有限公司 | 一种文件加、解密方法及装置 |
CN109327711A (zh) * | 2018-10-22 | 2019-02-12 | 高斯贝尔数码科技股份有限公司 | 音视频的内容格式分层结构、加密方法、解密方法及终端 |
CN111949509B (zh) * | 2019-05-17 | 2023-08-15 | 百度在线网络技术(北京)有限公司 | 应用软件的响应时间测试方法、装置、设备及存储介质 |
CN110868413B (zh) * | 2019-11-12 | 2021-09-17 | 成都索贝数码科技股份有限公司 | 一种基于帧内提取生成关联摘要的视音频可信播放方法 |
CN111031353B (zh) * | 2019-12-11 | 2022-08-23 | 上海乐相科技有限公司 | 一种视频加密方法及装置 |
CN114257780A (zh) * | 2020-09-22 | 2022-03-29 | 苏州池袋信息科技有限公司 | 一种智慧安防视频管理系统及方法 |
CN114666624A (zh) * | 2022-04-07 | 2022-06-24 | 乾三(北京)科技有限公司 | 一种视频文件加密和解密方法 |
CN114938464A (zh) * | 2022-05-11 | 2022-08-23 | 北京欣博电子科技有限公司 | 视频加密方法和装置、视频解密方法和装置 |
CN115051790A (zh) * | 2022-07-29 | 2022-09-13 | 上海电气风电集团股份有限公司 | 一种数据加密方法、数据解密方法及装置、存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523232A (zh) * | 2011-12-28 | 2012-06-27 | 南京邮电大学 | 一种基于数字内容提供商参与的播放许可证书发放方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102725737B (zh) * | 2009-12-04 | 2016-04-20 | 密码研究公司 | 可验证防泄漏的加密和解密 |
CN102469344B (zh) * | 2010-11-16 | 2013-10-09 | 腾讯科技(深圳)有限公司 | 一种视频码流加、解密方法、装置及通信、存储终端 |
CN102255886B (zh) * | 2011-04-02 | 2013-12-04 | 南京邮电大学 | 一种流媒体点播系统的加密和解密方法 |
-
2017
- 2017-10-20 CN CN201710987195.7A patent/CN107911210B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523232A (zh) * | 2011-12-28 | 2012-06-27 | 南京邮电大学 | 一种基于数字内容提供商参与的播放许可证书发放方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107911210A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107911210B (zh) | 视频切片加密、解密方法及相应装置 | |
CN103457718B (zh) | 使用可变长度分段和固定分组加密的部分密文更新 | |
CN108259507B (zh) | 用于自适应流媒体的片段完整性和真实性的系统和方法 | |
CN105208404A (zh) | 一种视频加密、解密方法及装置 | |
US20150074393A1 (en) | Method, Apparatus, and System for Implementing Media Data Processing | |
US20140143553A1 (en) | Method and Apparatus for Encapsulating and Encrypting Files in Computer Device | |
US9794230B2 (en) | Method and system for encrypting multimedia streams | |
US9450748B2 (en) | Decryption of content including partial-block discard | |
CN107222759B (zh) | 媒体文件加解密的方法、系统、设备和介质 | |
CN111698576B (zh) | 信息加密方法、解密方法、服务器、客户端及介质 | |
CN109120998B (zh) | 媒体数据传输方法、装置及存储介质 | |
US20130129079A1 (en) | System And Method For Decryption Of Content Including Disconnected Encryption Chains | |
JP2015507258A (ja) | ファイルをパックする/アンパックするための方法および装置 | |
CN107135062A (zh) | 一种改进的大文件的加密方法 | |
Fauziah et al. | Design and implementation of AES and SHA-256 cryptography for securing multimedia file over android chat application | |
CN115801315A (zh) | 数据传输方法及装置、电子设备、存储介质 | |
KR20230024342A (ko) | 데이터의 압축 및 암호화를 위한 시스템들 및 방법들 | |
WO2020044095A1 (zh) | 文件加密方法、装置、设备/终端/服务器及计算机可读存储介质 | |
WO2019225735A1 (ja) | データ処理装置、方法及びコンピュータプログラム | |
US10284529B2 (en) | Information processing apparatus and information processing method | |
CN108462566A (zh) | 一种多媒体文件加密方法及系统 | |
US20160241387A1 (en) | System and method for manipulating both the plaintext and ciphertext of an encryption process prior to dissemination to an intended recipient | |
CN108924596A (zh) | 媒体数据传输方法、装置及存储介质 | |
CN110730366B (zh) | 基于位运算的轻量级视频流加密、解密方法及加解密方法 | |
Uskov et al. | Advanced Encryption Standard Analysis with Multimedia Data on Intel® AES-NI Architecture. |
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: 20190122 Termination date: 20211020 |
|
CF01 | Termination of patent right due to non-payment of annual fee |