通过AES‑CBC算法进行并行加密的方法及系统技术方案

技术编号:10914567 阅读:146 留言:0更新日期:2015-01-14 20:31
本发明专利技术涉及视频加密领域,特别是涉及一种通过AES‑CBC算法进行并行加密的方法及系统。其中,并行加密的方法包括:a,将所述传输流视频文件切割为n个子视频块;b,选择密钥;c,确定长度188字节与长度a的最小公倍数b;d,插入填充部分;e,对各子视频块独立并行加密;f,组成密文块。本发明专利技术通过填充部分的尾部用作一个子视频块的前缀部分来作为初始化向量IV,填充部分的头部用作前一个子视频块的后缀部分,以使得填充后各子视频块的长度为kb。因此每个子视频块均不依赖前面的子视频块来产生初始化向量IV,使得各子视频块可以分开独立的并行加密。加密完成后的各子视频块合并为一个完整的加密文件,从而完成对TS视频文件的加密。

【技术实现步骤摘要】
通过AES-CBC算法进行并行加密的方法及系统
本专利技术涉及视频加密领域,特别是涉及一种通过AES-CBC算法进行并行加密的方法及系统。
技术介绍
传输流(TransportStream),一般称为TS。TS视频文件是分包发送的,每一个包长为188字节。包的结构为,包头为4个字节,负载为184个字节。TS视频文件主要应用于实时传送的节目,比如实时广播的电视节目。传输流(TransportStream),一般称为TS。TS视频文件是分包发送的,每一个包长为188字节。包的结构为,包头为4个字节,负载为184个字节。TS视频文件主要应用于实时传送的节目,比如实时广播的电视节目。AES(AdvancedEncryptionStandard)加密算法,又称Rijndael加密法,是一种区块加密标准,AES有不同的工作模式。其中,CBC(CipherBlockChaining)称为密码块链接,如图1所示,AES-CBC算法中,前一个块的加密结果被反馈到当前块的加密中,换句话说,每一个块被用来修改下一个块的加密,这样使得当同一个明文块重复出现时产生不同的密文块。每个加密块不仅依赖于产生它的明文块,而且依赖于所有前面的明文块。以128bit密钥算法为例。明文块需要分为128bit,也就是16字节的明文块。每一个明文块加密需要依赖:16字节密钥,上一个明文块加密后的密文块(用于初始化向量IV),本明文块的明文。该算法导致所有明文块上下依赖,无法将TS视频文件分为几个部分,用多线程或多台机器并行加密,导致加密等待时间较长。
技术实现思路
本专利技术的目的是要提供一种能够对传输流视频文件即TS视频文件并行加密的技术,来缩短TS视频文件的加密时间。特别地,本专利技术提供了一种通过AES-CBC算法进行并行加密的方法,用于对传输流视频文件进行并行加密,包括如下步骤:a,将所述传输流视频文件切割为按播放顺序排列的n个长度为L的子视频块,n为整数,且n≥2;b,选择一长度为a的密钥;c,为避免跨界,确定长度188字节与长度a的最小公倍数b;d,在相邻的所述各子视频块首尾之间插入由一个或多个传输流包组成的填充部分;其中,所述填充部分由长度为a的头部和长度为(kb-a-L)的尾部组成,所述尾部用作一个所述子视频块的前缀部分来作为初始化向量IV,所述头部用作前一个所述子视频块的后缀部分,并且将首个子视频块上填充一长度为(kb-a-L)前缀部分作为该首个子视频块的初始化向量IV,在末尾子视频块填充一长度为a的后缀部分,以使得填充后各子视频块的长度为kb,k为整数;e,使用所述密钥对各所述子视频块独立并行加密,分别形成各所述子视频块对应的各密文块;f,将各所述密文块按所述播放顺序连接在一起组成所述传输流包视频文件的密文块。进一步地,在步骤a中,选择所述子视频块的数量n为并行加密的线程数。进一步地,在解密时,根据所述各密文块的4个包头字节来判断该4个包头字节是否属于传输流包,若是则抛弃后面的184个字节。进一步地,所述密钥的长度选择为128bit、192bit或256bit。进一步地,所述各传输流包各不相同。本专利技术还提供一种通过AES-CBC算法进行并行加密的系统,用于对传输流视频文件进行并行加密,包括:视频分割模块,将所述传输流视频文件切割为按播放顺序排列的n个长度为L的子视频块,n为整数,且n≥2;密钥选择模块,选择一长度为a的密钥;填充模块,用于根据确定长度188字节与长度a的最小公倍数b;并在相邻的所述各子视频块首尾之间插入由一个或多个传输流包组成的填充部分;其中,所述填充部分由长度为a的头部和长度为(kb-a-L)的尾部组成,所述尾部用作一个所述子视频块的前缀部分来作为初始化向量IV,所述头部用作前一个所述子视频块的后缀部分,并且将首个子视频块上填充一长度为(kb-a-L)前缀部分作为该首个子视频块的初始化向量IV,在末尾子视频块填充一长度为a的后缀部分,以使得填充后各子视频块的长度为kb,k为整数;子视频块加密模块,使用所述密钥对各所述子视频块独立并行加密,分别形成各所述子视频块对应的各密文块;合并模块,用于将各所述密文块按所述播放顺序连接在一起组成所述传输流包视频文件的密文块。进一步地,所述子视频块的数量n与并行加密的线程数相同。进一步地,所述密钥的长度选择为128bit、192bit或256bit。进一步地,所述各传输流包各不相同。进一步地,还包括解密模块,所述解密模块在解密时,根据所述各密文块的4个包头字节来判断该4个包头字节是否属于传输流包,若是则抛弃后面的184个字节。本专利技术的方法和系统,通过将TS视频文件分为多个子视频块,在相邻的各子视频块首尾之间插入由一个或多个传输流包组成的填充部分,填充部分由长度为a的头部和长度为(kb-a-L)的尾部组成,所述尾部用作一个所述子视频块的前缀部分来作为初始化向量IV,所述头部用作前一个所述子视频块的后缀部分,并且将首个子视频块上填充一长度为(kb-a-L)前缀部分作为该首个子视频块的初始化向量IV,在末尾子视频块填充一长度为a的后缀部分,以使得填充后各子视频块的长度为kb。这样,每个子视频块均不依赖前面的子视频块来产生自己的初始化向量IV,使得各子视频块可以分开独立的并行加密。加密完成后的各子视频块合并为一个完整的加密文件,从而完成对TS视频文件的加密。根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。附图说明后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:图1是AES-CBC算法的加密示意图;图2是本专利技术一个实施例的使用TS包对子视频块进行填充的示意图;图3是本专利技术一个实施例的对TS视频文件并行加密的方法流程图。具体实施方式本专利技术实施例提供了一种通过AES-CBC算法进行并行加密的方法,用于对传输流视频文件进行并行加密,包括如下步骤:a,将所述传输流视频文件切割为按播放顺序排列的n个长度为L的子视频块,n为整数,且n≥2。b,选择一长度为a的密钥。c,为避免跨界,确定长度188字节与长度a的最小公倍数b。d,在相邻的所述各子视频块首尾之间插入由一个或多个传输流包组成的填充部分;其中,所述填充部分由长度为a的头部和长度为(kb-a-L)的尾部组成,所述尾部用作一个所述子视频块的前缀部分来作为初始化向量IV,所述头部用作前一个所述子视频块的后缀部分,并且将首个子视频块上填充一长度为(kb-a-L)前缀部分作为该首个子视频块的初始化向量IV,在末尾子视频块填充一长度为a的后缀部分,以使得填充后各子视频块的长度为kb,k为整数。e,使用所述密钥对各所述子视频块独立并行加密,分别形成各所述子视频块对应的各密文块。f,将各所述密文块按所述播放顺序连接在一起组成所述传输流包视频文件的密文块。根据该实施例,本专利技术通过将TS视频文件分为多个子视频块,在相邻的各子视频块首尾之间插入由一个或多个传输流包组成的填充部分,填充部分由长度为a的头部和长度为(kb-a-L)的尾部组成,所述尾部用作一个所述子视频块的前缀本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201410572913.html" title="通过AES‑CBC算法进行并行加密的方法及系统原文来自X技术">通过AES‑CBC算法进行并行加密的方法及系统</a>

【技术保护点】
一种通过AES‑CBC算法进行并行加密的方法,用于对传输流视频文件进行并行加密,其特征在于,包括如下步骤:a,将所述传输流视频文件切割为按播放顺序排列的n个长度为L的子视频块,n为整数,且n≥2;b,选择一长度为a的密钥;c,为避免跨界,确定长度188字节与长度a的最小公倍数b;d,在相邻的所述各子视频块首尾之间插入由一个或多个传输流包组成的填充部分;其中,所述填充部分由长度为a的头部和长度为(kb‑a‑L)的尾部组成,所述尾部用作一个所述子视频块的前缀部分来作为初始化向量IV,所述头部用作前一个所述子视频块的后缀部分,并且将首个子视频块上填充一长度为(kb‑a‑L)前缀部分作为该首个子视频块的初始化向量IV,在末尾子视频块填充一长度为a的后缀部分,以使得填充后各子视频块的长度为kb,k为整数;e,使用所述密钥对各所述子视频块独立并行加密,分别形成各所述子视频块对应的各密文块;f,将各所述密文块按所述播放顺序连接在一起组成所述传输流包视频文件的密文块。

【技术特征摘要】
1.一种通过AES-CBC算法进行并行加密的方法,用于对传输流视频文件进行并行加密,其特征在于,包括如下步骤:a,将所述传输流视频文件切割为按播放顺序排列的n个长度为L的子视频块,n为整数,且n≥2;b,选择一长度为a的密钥;c,为避免跨界,确定长度188字节与长度a的最小公倍数b;d,在相邻的所述各子视频块首尾之间插入由一个或多个传输流包组成的填充部分;其中,所述填充部分由长度为a的头部和长度为(kb-a-L)的尾部组成,所述尾部用作一个所述子视频块的前缀部分来作为初始化向量IV,所述头部用作前一个所述子视频块的后缀部分,并且将首个子视频块上填充一长度为(kb-a-L)前缀部分作为该首个子视频块的初始化向量IV,在末尾子视频块填充一长度为a的后缀部分,以使得填充后各子视频块的长度为kb,k为整数;e,使用所述密钥对各所述子视频块独立并行加密,分别形成各所述子视频块对应的各密文块;f,将各所述密文块按所述播放顺序连接在一起组成所述传输流包视频文件的密文块。2.根据权利要求1所述的方法,其特征在于,在步骤a中,选择所述子视频块的数量n为并行加密的线程数。3.根据权利要求1所述的方法,其特征在于,在解密时,根据所述各密文块的4个包头字节来判断该4个包头字节是否属于传输流包,若是则抛弃后面的184个字节。4.根据权利要求1所述的方法,其特征在于,所述密钥的长度选择为128bit、192bit或256bit。5.根据权利要求1所述的方法,其特征在于,所述各传输流包各不相同。6.一种通过AES-CBC算...

【专利技术属性】
技术研发人员:郑铸东
申请(专利权)人:航天数字传媒有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1