一种可搭载隐秘信息的视频加密方法
阅读说明:本技术 一种可搭载隐秘信息的视频加密方法 (Video encryption method capable of carrying secret information ) 是由 何军辉 梁剑 于 2019-10-15 设计创作,主要内容包括:本发明公开了一种可搭载隐秘信息的视频加密方法,包括:S1,获取待加密的YUV原始格式的视频文件;S2,逐帧对每一个宏块进行帧内预测或帧间预测,得到最优预测模式下的宏块类型、预测相关参数、CBP、量化指标以及残差系数;S3,将每帧的宏块划分为四个区域,分别为A1、A2、A3、A4,并将每一个区域的宏块按光栅扫描的方式线性排列;S4,获取用户的加密口令Key1,根据加密口令Key1通过伪随机数生成器生成一个伪随机密钥序列random1;本发明具有可抵抗各类轮廓攻击、提供更好的视觉加密效果,同时适用于未经压缩和已经过H.264压缩的视频等特点。(The invention discloses a video encryption method capable of carrying secret information, which comprises the following steps: s1, acquiring a video file in a YUV original format to be encrypted; s2, performing intra-frame prediction or inter-frame prediction on each macro block frame by frame to obtain a macro block type, prediction related parameters, CBPs (cubic boron complexes), quantization indexes and residual coefficients under an optimal prediction mode; s3, dividing the macro block of each frame into four areas, namely A1, A2, A3 and A4, and linearly arranging the macro blocks of each area in a raster scanning mode; s4, acquiring an encrypted password Key1 of a user, and generating a pseudorandom Key sequence random1 through a pseudorandom number generator according to the encrypted password Key 1; the invention has the characteristics of resisting various contour attacks, providing better visual encryption effect, being suitable for uncompressed and H.264 compressed videos and the like.)
技术领域
本发明涉及多媒体信息安全技术领域,具体涉及一种可搭载隐秘信息的视频加密方法。
背景技术
随着云计算和大数据的不断发展,相关应用程序(例如移动分布式存储)已迅速融入我们的生活。但是云服务器容易受到内部不可靠系统管理员的攻击,并且由于其重要性可能会在外部引发更多攻击,这已经成为云计算发展的主要障碍之一。为了满足不受信任的云存储提供商提供可信视频数据共享的需要,我们需要以加密形式存储私有视频以应对可能出现的数据泄漏情况。因此,云存储管理员被授权访问加密视频而不是原始视频,并直接在加密视频中嵌入一些附加信息以扩展额外功能(例如版权归属或完整性认证),同时保持原始视频内容不被感知。直接在加密域中执行数据隐藏也适用于需要高安全性和隐私保护的其他场景,尤其是监视和医疗等领域,因此值得研究人员研究一种有效的方案。
在过去的几年里,有大量图像密文域信息隐藏的方法。然而尽管这些方法非常实用,由于视频的编码标准和数据结构更为复杂,它们都不能直接应用于视频。H.264/AVC凭借着低码率和高画面质量等优良特性,成为了最广泛应用的视频编码标准,因此非常需要探索一套高效的基于H.264/AVC的密文域信息隐藏方法。但是,将附加数据嵌入压缩且加密的视频比特流中存在一些相当大的挑战:首先,信息隐藏依赖于冗余信息,然而视频数据经过H.264/AVC格式压缩编码后,其冗余度大大得到了降低,提高了数据嵌入的难度。另外,数据隐藏需要我们在加密之前或之后准确地提取隐藏数据,但加密后压缩的视频数据将受到严重干扰,因此很难有效地将信息隐藏算法与加密方案相结合。此外,考虑到视频压缩率和网络负担,所使用的视频加密和信息隐藏都不应该显着增加视频文件的大小。
Lian S等人提出了一种在压缩视频比特流中实现视频加密和水印的方案(LianS,Liu Z,Ren Z,et al.Commutative Encryption and Watermarking in VideoCompression[J].IEEE Transactions on Circuits and Systems for VideoTechnology,2007,17(6):0-778)。在H.264/AVC压缩中,帧内预测模式,运动矢量差和离散余弦变换(DCT)系数的符号被加密,而DCT系数被自适应地加水印。Xu D等人提出了一种CAVLC码字替换的加密和信息隐藏方法(Xu D,Wang R,Shi Y Q.Data Hiding inEncrypted H.264/AVC Video Streams by Codeword Substitution[J].IEEETransactions on Information Forensics&Security,2014,9(4):596-606)。加密帧内预测模式的码字,运动矢量差的码字和残差系数的码字,然后通过使用DCT系数码字替换技术将附加数据嵌入加密域中。随后,Xu D等人改进了码字替换的数据隐藏方法(Xu D,Wang R,Shi Y Q.An Improved Scheme for Data Hiding in Encrypted H.264/AVC Videos[J].Journal of Visual Communication and Image Representation,2016:S1047320316000286)。充分利用CAVLC码字中存在的冗余,当suffixLength等于1时,通过配对码字替换进一步增强最大嵌入容量,当suffixLength大于2时,采用基于多个的符号系统。Yao Y等人针对数据嵌入和之后的帧间失真漂移引起的图像失真进行了理论分析(YaoY,Zhang W,Yu N.Inter-frame distortion drift analysis for reversible datahiding in encrypted H.264/AVC video bitstreams[J].Signal Processing,2016:S0165168416300561)。基于此分析,他们给不同DCT系数赋予不同的优先级,根据优先级来进行数据嵌入。
上述的方法和几乎其它所有文献的加密方式都是扰乱帧内预测模式,运动矢量差和残差系数。由于这些加密对视频原始内容的感知造成了很大的破坏,它们容易受到MBS框架攻击(Minemura K,Wong K S,Phan R,et al.A Novel Sketch Attack for H.264/AVCFormat-Compliant Encrypted Video[J].IEEE Transactions on Circuits and Systemsfor Video Technology,2016:1-1)。MBS框架攻击可以根据每个宏块的熵编码所花费的比特数来构造对应于帧的轮廓,
因此,行业内急需设计一套在可以抵抗MBS框架攻击进行视频附加信息隐藏方法。
发明内容
本发明的目的是为了克服现有H.264/AVC视频密文域信息隐藏普遍存在无法抵抗各种类型的轮廓攻击,以及现有可抵抗轮廓攻击的加密方法无法结合信息隐藏的不足,提供了一种可搭载隐秘信息的视频加密方法。
本发明的目的通过以下的技术方案实现:
一种可搭载隐秘信息的视频加密方法,包括:
S1,获取待加密的YUV原始格式的视频文件;
S2,逐帧对每一个宏块进行帧内预测或帧间预测,得到最优预测模式下的宏块类型、预测相关参数、CBP、量化指标以及残差系数;
S3,将每帧的宏块划分为四个区域,分别为A1、A2、A3、A4,并将每一个区域的宏块按光栅扫描的方式线性排列;
S4,获取用户的加密口令Key1,根据加密口令Key1通过伪随机数生成器生成一个伪随机密钥序列random1;
S5,计算出A2和A4区域中的每个非skip宏块的skip_run,每个非skip类型的P/B宏块的I_run;其中skip_run表示为当前非skip宏块前面相邻连续skip宏块的个数,I_run表示为非skip类型的P/B宏块与上一个非skip类型的P/B宏块之间的I宏块个数;
S6,根据伪随机数序列random1将所有的skip_run置乱,再根据置乱后的skip_run重新排列每一个宏块;
S7,根据伪随机数序列random1将所有的I_run置乱,再根据置乱后的I_run重新排列每一个宏块;
S8,根据伪随机数序列random1将所有的I宏块置乱;
S9,保持非skip类型的P/B宏块的CBP和残差系数不变,根据伪随机数序列random1将非skip类型的P/B宏块的最优宏块模式、预测相关参数、量化步长置乱;
S10,将A3区域所有类型的宏块随机置乱;
S11,将四个区域的宏块各自以光栅扫描的顺序重构成一帧后,逐个宏块进行熵编码,完成视频的加密;
S12,将待嵌入附加信息嵌入加密的视频,完成附加信息的隐藏。
优选地,所述将每帧划分为四个区域包括:将每帧第一行第一列的宏块为A1区域,第一行除A1外的所有宏块为A2区域,第一列除A1外的所有宏块为A3区域,整帧除A1、A2、A3外的所有宏块为A4区域。
优选地,步骤S6中的根据伪随机数序列random1将所有的skip_run置乱包括:从伪随机密钥序列random1上向后取log(N)个比特,log(N)用十进制表示为T,其中N表示为非skip宏块的个数,交换第一个skip_run以及第T%N个skip_run的值,其中%为模运算,按照同样方法依次交换第二个、第三个…skip_run的值,直到第N个skip_run的值发生交换,完成所有skip_run的置乱。
优选地,步骤S7中的根据伪随机数序列random1将所有的I_run置乱包括:从伪随机密钥序列random1上向后取log(K)个比特,log(K)用十进制表示为T,其中K表示为非skip类型的P/B宏块的个数,交换第一个I_run以及第T%K个I_run的值,其中%为模运算;按照同样的方法依次交换第二个、第三个…I_run的值,直到第K个I_run的值发生交换,完成所有I_run的置乱。
优选地,步骤S8中的根据伪随机数序列random1将所有的I宏块置乱包括:从伪随机密钥序列random1上向后取log(R)个比特,将log(R)用十进制表示为T,其中R表示为I宏块的个数,交换第一个I宏块以及第T%R个I宏块的位置,其中%为模运算;按照相同的方法依次交换第二个、第三个…I宏块的位置,直到第R个I宏块的位置发生交换,完成所有I宏块的置乱。
优选地,所述预测相关参数包括:帧内预测模式、参考帧索引和运动向量。
优选地,步骤S9中的根据伪随机数序列random1将非skip类型的P/B宏块的最优宏块模式、预测相关参数、量化步长置乱包括:从伪随机密钥序列random1上向后取log(M)个比特,将log(M)用十进制表示为T,其中M表示为非skip类型的P/B宏块的个数,交换第一个非skip类型的P/B宏块以及第T%M个非skip类型的P/B宏块的最优宏块模式、预测相关参数、量化步长,其中%为模运算;按照相同的方法依次交换第二个、第三个…非skip类型的P/B宏块的信息,直到第M个非skip类型的P/B宏块的信息发生交换,完成所有非skip类型的P/B宏块的信息置乱。
优选地,步骤S10中的将A3区域所有类型的宏块随机置乱包括:从伪随机密钥序列random1上向后取log(X)个比特,将log(X)用十进制表示为T,其中X表示为A3区域内所有宏块的个数,交换第一个宏块以及第T%X个宏块的位置,其中%为模运算;按照同样的方法依次交换第二个、第三个…宏块的位置,直到第X个宏块的位置发生交换,完成所有A3区域内宏块的置乱。
优选地,步骤S12中的将待嵌入附加信息嵌入加密的视频包括:
S121,将待嵌入附加信息比特化成二进制的信息序列data1;
S122,获取用户的待嵌入信息加密口令Key2,根据待嵌入信息加密口令Key2通过伪随机数生成器算法生成一个与信息序列data1等长的伪随机密钥序列seq2;
S123,以宏块按照光栅扫描,非零系数按照zig-zag扫描的方式,将一帧中所有非skip类型的P/B宏块内的所有非零系数进行序列化,得到序列化C;
S124,将二进制信息序列data1与伪随机数序列seq2进行异或运算,生成二进制加密信息序列data2,将二进制加密信息序列data2按照如下规则进行数据嵌入:
当suffixLength>1时,若当前待嵌入的二进制加密信息比特di=0,则修改后的系数c′i与修改前的系数ci的关系:
若当前待嵌入的二进制加密信息比特di=1时,则修改后的系数c′i与修改前的系数ci的关系:
其中%为模运算;
S125,将宏块的残差系数进行熵编码,输出已嵌入附加信息的加密视频比特流。
优选地,步骤S12之后还包括:已嵌入附加信息的提取;所述已嵌入附加信息的提取包括:获取有隐藏信息的视频比特流,对视频流进行熵解码;获取每一个非skip类型的P/B宏块的非零系数,按照宏块光栅扫描、系数zig-zag扫描的方式逐个提取非零系数c′i中隐藏的数据di,得到信息序列data2,提取的标准为:
其中%为模运算;
获取待嵌入数据加密口令Key2,根据待嵌入数据加密口令Key2通过伪随机数生成器生成伪随机数序列seq2;将从非零系数序列中提取出来的信息序列data2与伪随机数序列seq2进行异或运算,即可得到嵌入在视频中的原始数据。
本发明相对于现有技术具有如下优点:
本方案主要分为视频加密、数据嵌入、数据提取三个部分。在视频加密中,通过置乱skip_run、I_run、I宏块以及非skip类型的P/B宏块的信息来满足安全需求,效地抵抗MBS框架攻击。在数据嵌入中,通过在suffixLength>1的情况下对残差系数码字替换来达到要求;在数据提取部分,通过判断残差系数的奇偶性来输出嵌入的数据信息。本方案具有可抵抗各类轮廓攻击、提供更好的视觉加密效果,同时适用于未经压缩和已经过H.264压缩的视频等特点,并可通过嵌入的额外信息提供各种扩展功能,可用于保护商业或个人视频通过***道传输或存储至云存储平台时的安全和隐私,实用价值高。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的可搭载隐秘信息的视频加密方法的流程示意图。
图2为本发明的加密流程图。
图3为本发明的A1、A2、A3、A4区域划分示意图。
图4为本发明的A2、A4区域的skip_run、I_run置换,I宏块置换以及非skip类型的P/B宏块置换示意图。
图5为本发明的数据嵌入流程图。
图6为本发明的数据提取流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
参见图1-6,一种可搭载隐秘信息的视频加密方法,包括:
S1,获取待加密的YUV原始格式的视频文件;
S2,逐帧对每一个宏块进行帧内预测或帧间预测,得到最优预测模式下的宏块类型、预测相关参数、CBP、量化指标以及残差系数;所述预测相关参数包括:帧内预测模式、参考帧索引和运动向量。按照H.264/AVC协议标准逐帧逐宏块进行帧内预测/帧间预测、计算残差、整型DCT变换和量化等操作可以逐帧对每一个宏块进行帧内预测或帧间预测,得到最优预测模式下的宏块类型、预测相关参数、CBP、量化指标以及残差系数;
S3,将每帧的宏块划分为四个区域,分别为A1、A2、A3、A4,并将每一个区域的宏块按光栅扫描的方式线性排列;参见图3,所述将每帧划分为四个区域包括:将每帧第一行第一列(最左上角)的宏块为A1区域,第一行除A1外的所有宏块为A2区域,第一列除A1外的所有宏块为A3区域,整帧除A1、A2、A3外的所有宏块为A4区域。
S4,获取用户的加密口令Key1,根据加密口令Key1通过伪随机数生成器生成一个伪随机密钥序列random1;视频的每一帧都是用步骤S5到步骤S10来进行加密。
S5,计算出A2和A4区域中的每个非skip宏块的skip_run,每个非skip类型的P/B宏块的I_run;其中,A1区域不用置乱。其中skip_run表示为当前非skip宏块前面相邻连续skip宏块的个数,I_run表示为当前非skip类型的P/B宏块与上一个非skip类型的P/B宏块之间的I宏块个数;
S6,根据伪随机数序列random1将所有的skip_run置乱,再根据置乱后的skip_run重新排列每一个宏块;其中根据伪随机数序列random1将所有的skip_run置乱包括:从伪随机密钥序列random1上向后取log(N)个比特,log(N)用十进制表示为T,其中N表示为非skip宏块的个数,交换第一个skip_run以及第T%N个skip_run的值,其中%为模运算,按照同样方法依次交换第二个、第三个…skip_run的值,直到第N个skip_run的值发生交换,完成所有skip_run的置乱。
S7,根据伪随机数序列random1将所有的I_run置乱,再根据置乱后的I_run重新排列每一个宏块;其中根据伪随机数序列random1将所有的I_run置乱包括:从伪随机密钥序列random1上向后取log(K)个比特,log(K)用十进制表示为T,其中K表示为非skip类型的P/B宏块的个数,交换第一个I_run以及第T%K个I_run的值,其中%为模运算;按照同样的方法依次交换第二个、第三个…I_run的值,直到第K个I_run的值发生交换,完成所有I_run的置乱。比如:假设有R=14个宏块,则在密钥序列random1上取
个比特,这4个比特用十进制表示为T,将第一个I宏块与第T%R个I宏块的位置互换。S8,根据伪随机数序列random1将所有的I宏块置乱;其中,根据伪随机数序列random1将所有的I宏块置乱包括:从伪随机密钥序列random1上向后取log(R)个比特,将log(R)用十进制表示为T,其中R表示为I宏块的个数,交换第一个I宏块以及第T%R个I宏块的位置,其中%为模运算;按照相同的方法依次交换第二个、第三个…I宏块的位置,直到第R个I宏块的位置发生交换,完成所有I宏块的置乱。
S9,保持非skip类型的P/B宏块的CBP和残差系数不变,根据伪随机数序列random1将非skip类型的P/B宏块的最优宏块模式、预测相关参数、量化步长置乱;其中,根据伪随机数序列random1将非skip类型的P/B宏块的最优宏块模式、预测相关参数、量化步长置乱包括:从伪随机密钥序列random1上向后取log(M)个比特,将log(M)用十进制表示为T,其中M表示为非skip类型的P/B宏块的个数,交换第一个非skip类型的P/B宏块以及第T%M个非skip类型的P/B宏块的最优宏块模式、预测相关参数、量化步长,其中%为模运算;按照相同的方法依次交换第二个、第三个…非skip类型的P/B宏块的信息,直到第M个非skip类型的P/B宏块的信息发生交换,完成所有非skip类型的P/B宏块的信息置乱。
S10,将A3区域所有类型的宏块随机置乱;其中,将A3区域所有类型的宏块随机置乱包括:从伪随机密钥序列random1上向后取log(X)个比特,将log(X)用十进制表示为T,其中X表示为A3区域内所有宏块的个数,交换第一个宏块以及第T%X个宏块的位置,其中%为模运算;按照同样的方法依次交换第二个、第三个…宏块的位置,直到第X个宏块的位置发生交换,完成所有A3区域内宏块的置乱。
S11,将四个区域的宏块各自以光栅扫描的顺序重构成一帧后,逐个宏块进行熵编码,完成视频的加密;
S12,将待嵌入附加信息嵌入加密的视频,完成附加信息的隐藏。参见图5,其中,将待嵌入附加信息嵌入加密的视频包括:
S121,将待嵌入附加信息(待嵌入数据)比特化成二进制的信息序列data1;
S122,获取用户的待嵌入信息加密口令Key2,根据待嵌入信息加密口令Key2通过伪随机数生成器算法生成一个与信息序列data1等长的伪随机密钥序列seq2;
S123,以宏块按照光栅扫描,非零系数按照zig-zag扫描的方式,将一帧中所有非skip类型的P/B宏块内的所有非零系数进行序列化,得到序列化C;该非零系数序列C即为数据嵌入的载体。
S124,将二进制信息序列data1与伪随机数序列seq2进行异或运算,生成二进制加密信息序列data2,将二进制加密信息序列data2按照如下规则进行数据嵌入:
当suffixLength>1时,若当前待嵌入的二进制加密信息比特di=0,则修改后的系数c′i与修改前的系数ci的关系:
若当前待嵌入的二进制加密信息比特di=1时,则修改后的系数c′i与修改前的系数ci的关系:
其中%为模运算;suffixLength是一个协议中的变量,是本领域内公知的变量。
S125,将宏块的残差系数进行熵编码,输出已嵌入附加信息的H.264/AVC加密视频比特流。
在本实施例,步骤S12之后还包括:已嵌入附加信息的提取;参见图6,所述已嵌入附加信息的提取包括:获取已嵌入附加信息(有隐藏信息)的H.264/AVC视频比特流(加密或解密状态下),对视频流进行熵解码;获取每一个非skip类型的P/B宏块的非零系数,按照宏块光栅扫描、系数zig-zag扫描的方式逐个提取非零系数c′i中隐藏的数据di,得到信息序列data2,提取的标准:
其中%为模运算;
获取待嵌入数据加密口令Key2,根据待嵌入数据加密口令Key2通过伪随机数生成器生成伪随机数序列seq2;将从非零系数序列中提取出来的信息序列data2与伪随机数序列seq2进行异或运算,即可得到嵌入在视频中的原始数据。
本方案提出了一种新的H.264/AVC密文域信息隐藏方案,将视频附加数据嵌入到加密视频比特流中,同时有效地抵抗MBS框架攻击。首先,对于每个非skip宏块,都有一个skip_run用于记录其前面相邻位置连续的skip宏块个数,该skip_run将会被随机置换。对于每个非skip类型的帧间预测宏块(P/B宏块),还有一个I_run用来记录当前非skip类型的P/B宏块与上一个非skip类型的帧间预测宏块(P/B宏块)之间的帧内预测宏块(I宏块)的个数,该I_run同样会被随机置乱。为了进一步加密视频流且影响MBS框架攻击的效果,我们还对帧内预测宏块(I宏块)随机置乱,对非skip类型的帧间预测宏块(P/B宏块)的信息进行随机置乱。这些加密和数据隐藏步骤经过精心设计,可以保持格式兼容性,且只会极少地增加文件大小。所提出的方案可以在安全性方面取得优异的性能,特别是在MBS框架攻击和其他JPEG方向地框架攻击,包括EAC、PLZ、DCCA、INCC攻击等等。另外,一些广泛采用的加密技术,例如非零DCT系数的符号位和帧内预测模式,可以作为选项结合到提出的加密方案中以提供进一步的安全性
上述具体实施方式为本发明的优选实施例,并不能对本发明进行限定,其他的任何未背离本发明的技术方案而所做的改变或其它等效的置换方式,都包含在本发明的保护范围之内。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:一种用于保护网络技术的监控装置