2. 沈阳风驰软件股份有限公司, 沈阳 110167
2. Shenyang Fengchi Software Co. Ltd., Shenyang 110167, China
随着移动互联网与信息压缩技术的飞速发展, 视频媒体文件的传输与通信变得十分便捷, 大量有关个人、企业和政府的视频媒体数据需要产生、加工并经过互联网来传输与访问. 由于网络开放性与共享性的特点, 人们可以随时随地多设备对视频资源进行存取, 但这一趋势却给人们带来对视频媒体数据隐私和安全方面的担忧, 例如视频数据在传输过程中可能存在着隐私泄露、视频窃取、视频内容恶意篡改等安全隐患, 如何保证视频数据在网络传输和存储过程中的安全成为了一个热门的话题. 使用视频加密算法对视频媒体数据进行加密是一种有效的数据保护手段, 它可以将明文数据通过密钥和加密算法变成混乱无规律的密文数据, 从而达到保护视频媒体文件的目的, 通常视频媒体文件较大, 一部时长2 h的视频, MPEG-1编码的视频大约是1 GB大小, 并且需要以实时或高帧率进行传输和播放, 如果使用传统加密算法(如DES, AES和IDEA等)[1]加密视频文件, 通常是将视频媒体文件数据全部进行加密[2], 这样加密确实可以带来更高的安全性, 但需要的计算量也会非常大, 导致加密效率过低, 加密所需的成本也往往超出了视频媒体文件本身的价值. 因此, 在加密过程中需要考虑效率和性能, 以确保对视频数据进行加密和解密的时间开销在可接受的范围内, 为解决上述问题, 本文主要针对视频媒体文件加密效率提升技术进行研究.
视频媒体文件加密效率提升技术在各种场景和应用领域都有重要作用, 例如, 在流媒体视频服务领域, 视频流媒体平台需要对视频内容进行加密, 以保护版权、防止盗播和非法下载, 提高视频加密效率可以有效减少视频的解密延迟和缓冲时间, 从而提高视频播放质量, 改善用户体验; 对于企业视频安全而言, 企业内部视频资料的安全性对于保护商业机密和隐私至关重要, 提高视频加密效率可以在保护视频文件的同时不影响员工或合作伙伴的正常使用和访问; 在远程监控和视频会议方面, 远程监控系统和视频会议系统需要对视频流进行加密, 以保护视频传输过程中的隐私和机密信息. 高效的加密技术可以降低延迟, 提供稳定和安全的通信环境, 总体来说, 通过提升视频媒体文件加密效率, 可以在多个应用领域中实现更好的数据保护和提升用户体验.
在加密算法方面我国的研究已取得显著成果, 2010年国产商用密码算法经国家密码管理局发布, 成为我国以及ISO/IEC国际密码标准, 其中国产SM2算法已在全国范围内进行了推广和普及[3], 涵盖了安全传输、身份认证等众多领域, 为系统安全提供了安全技术保障. 本文针对H.264/AVC视频帧的结构特点, 以及对目前普遍应用于视频加密的DES, AES和IDEA对称加密算法进行分析可知, 非对称加密SM2算法在安全性方面上比对称加密算法提供更高级别的安全性, 并且使用SM2算法可以有效避免由于使用国际密码技术所带来的安全风险, 即从算法层面上推动自主知识产权, 确保加密过程的安全性, 然而目前还没有相关研究将SM2算法应用到视频加密的领域中, 因此基于以上原因本文开创性地提出一种基于国密SM2算法的视频媒体文件加密效率提升的选择性视频加密方法, 分析实验结果可知该方法大幅度地缩短了加密时间, 在保证加密效果的同时提升了加密效率, 最终达到高效加密视频媒体文件的目的.
1 视频媒体文件加密在过去的几十年中研究者们提出了许多针对H.264/AVC视频的加密方法[4], 不同的视频加密方法是针对不同的加密需求或目的而进行设计的, 如提高数据的安全性、实时性、保证加密文件的比特率和加密文件的格式兼容性等. 尽管如今关于文本加密算法的研究已经非常成熟, 但是如果将传统的文本加密算法(如DES, AES和IDEA等)直接应用到视频加密中, 虽然能够获得非常高的安全性, 但也存在计算复杂度高、加密效率过低和格式不兼容等缺点. 视频选择性加密(selective encryption, SE)[5]是一种通过只加密视频数据流中的部分重要元素来达到降低计算复杂度并保持足够安全性的一种加密方法, 因为SE的部分在原始视频数据中只占小部分, 这使得SE和解密的成本相对于朴素算法加密也有了显著的降低, 对视频媒体文件的加密效率得到明显的提升, 因此可满足视频数据的实时性要求.
在视频编码中, 帧内预测模式(intra-prediction model, IPM)对于宏块内系数的编码十分关键, 运动向量也是H.264/AVC解码器中的宏块间系数进行预测与重建的重要数据, 因此许多文献[6–8]针对这两者进行加密以达到扰乱效果. Ahn等[9]根据I帧的重要性, 提出了针对分割尺寸为4×4大小的I宏块的IPM进行异或加密的方法. 在H.264/AVC标准中, I帧作为图像组(group of picture, GOP)的首帧而携带大量数据, 并成为后续几乎所有P帧和B帧的参考基础, 因此, I帧的加密效果不但会在帧内扩散, 还会明显地影响同一GOP内其余帧的画面质量, 具有较好的加密效果, 但所使用的异或加密方法易被破解, 导致加密后的视频数据安全性较低. 文献[10]提出了一种基于H.264/AVC的SE方案, 对IPM、残差数据、帧间预测模式和运动矢量差(MVD)进行了加密, 该方案有着较高的加密效率和较低的传输延迟, 但是该方案依赖于加密算法和秘钥管理的可靠性, 否则可能会导致信息泄露. 文献[11]提出使用时空混沌加密模型对IPM、MVD以及熵编码语法元素进行加密, 通过对少量数据进行加密来实现高安全性加密, 还可以通过调整参数、初始化条件等方式产生不同的混沌序列, 从而实现多样化的加密过程, 这样可以增加攻击者的破解成本, 并且适应不同需求场景下的加密要求, 不足之处是时空混沌加密模型涉及到混沌映射、非线性动力学等复杂数学计算, 使加密和解密的运算复杂度更高, 在解密过程中, 需要进行大量的数学计算和迭代操作来恢复原始数据, 这对于硬件设备或者资源受限的场景可能带来挑战.
DCT系数对于视频编码同样十分重要, 因此选择对H.264/AVC视频比特流的DCT系数进行加密也可以得到很好的加密效果. 在文献[12,13]中, 一种基于MPEG-2编码标准的加密方案被提出, 其加密对象是帧内宏块中DCT系数, 该加密方案利用一个控制因子可以灵活调节视频内容的扰乱程度, 且加密的DCT系数是编码中非常重要的数据, 故该算法安全性较高, 但该加密算法影响了压缩率且也只有有限的视频扰乱效果. Shahid等[14]提出了一种针对H.264/AVC视频的快速加密方案, SE非零系数后缀的符号位, 该方案具有格式兼容性且高效, 但只加密残差数据, 而纹理信息和运动信息仍然暴露在外, 因此安全性可能有所不足. 针对移动端特点的视频加密, Chung等[15]提出一个使用AES加密I宏块中DCT系数和P宏块中MV的SE方案, 该方案虽然获得了很好的加密效果, 但是密文视频文件比特率增长明显, 导致解码复杂度增加, 增加传输开销.
根据上述相关工作可知, 现有更多视频安全研究只选择视频编码数据中的关键部分进行加密, SE方案往往具有较好的加密效果, 由于现有的视频加密方法在安全性、计算复杂度和格式兼容性等方面存在一些问题, 尤其是一些加密方法加密效率较低, 因此本文将采用SE方案对视频媒体文件加密效率提升技术进行研究, 来完善以上研究中对视频数据加密方法中的一些不足.
2 视频媒体文件格式分析本文主要是基于国密算法对视频媒体文件加密效率提升技术的研究, 在日常生活中我们常见的视频媒体文件格式有MKV、AVI、MOV和MP4等, 其中MP4格式的视频文件的特点是体积小占用空间少, 下载和传输起来方便, 并且能够在大多数播放器上播放, 具有较高的清晰度, 视频格式还可以轻易被转换成其他格式, 以便在特定的播放器上播放, 由于MP4文件具有以上这些优势, 所以在互联网领域被广泛应用, 本文也以MP4文件作为视频媒体文件的一个示例进行分析, 使用国密算法来对MP4文件的加密效率提升技术进行研究.
2.1 H.264/AVC视频帧结构现在常见的视频编解码格式主要有H.264/AVC和H.265/HEVC[16–19]这两种, H.265相比于H.264具有更高的压缩率, 可以实现更高的视频分辨率和更高的帧率, 此外, H.265还具有更好的运动估计和色彩转换性能, 可以提供更清晰、更流畅的视频. 但是在一些应用场景下, H.264可能仍然具有一定的优势, 比如低码率、低延迟的视频传输等, 并且H.264已经在市场上使用了相当长的时间, 具有广泛的兼容性和可用性, 由于H.265和H.264都使用NALU作为视频数据的传输单元, 只是在NALU头部长度和NALU类型字段有些不同, 所以本文选择H.264/AVC作为研究对象, 使用的方法也同样适用于H.265/HEVC压缩格式.
在H.264/AVC的3种视频编码中, I帧表示关键帧, 可以理解为这一帧画面的完整保留[20], 解码时只需要本帧数据就可以完成, 是靠尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像. P帧是前向预测帧, 表示的是这一帧跟之前的一个关键帧(或P帧)的差别, 解码时需要用之前缓存的画面叠加上本帧定义的差别, 生成最终画面. B帧是双向差别帧, 也就是记录的是本帧与前后帧的差别, 要解码不仅要取得之前的缓存画面, 还要解码之后的画面, 通过前后画面与本帧数据的叠加取得最终的画面. I帧、P帧、B帧的关系如图1所示, 可见在3种类型中最重要的是I帧和P帧, B帧依赖于I帧或P帧.
2.2 MP4加密可行性分析
MP4文件本身是由一系列Box组成, 并且Box中也可以包含一系列子Box, 文件中的媒体信息和媒体数据是分开存放的, 媒体数据保存在Mdat Box中, 由一系列音视频交织存放的块(Chunk)组成, 每个Chunk又由一系列类型相同且连续存放的样本(Sample)组成[21]. 在MP4载荷的H.264编码视频数据中, 一般情况下每一个Sample就是一个图像视频帧, 于是就会得出这样的结论, 如果对H.264/AVC视频帧进行加密, 那么实际上也会间接地对MP4文件进行加密, 因为MP4文件中的视频帧数据是来源于H.264编码中的视频帧, 这样MP4文件与H.264/AVC视频帧两者之间就建立了联系, 所以当视频帧经过加密后, 存储在MP4文件中的相应Sample和Chunk也会受到影响, 这将导致加密后的MP4文件无法正确解析和播放, 因为视频帧数据已被加密, 无法被正常解码和显示, 从而证明了MP4文件的加密可行性.
具体的加密原理如下, 在如图2所示的H.264码流分层结构中, Sample由一个或多个NALU组成, 根据H.264/AVC语法, 一个NALU由一组对应于视频编码的NALU头部信息和一个原始直接序列负载(RBSP)组成, 根据NALU的头部信息可以判断这个NALU中承载的数据类型, 也就可以判断出该视频帧的类型, 视频序列中第1个视频帧是I帧, 而第1个前向预测帧P帧也参考的 I帧, 双向差别帧B帧也依靠I帧, 所以本文提出使用国密算法来加密I帧的NALU头部信息的方法, 因为想要正确解析一帧数据, 必须先要正确解析构成它的NALU头部信息, 否则I帧无法被解析, 导致P帧和B帧也无法被解析, 所有视频帧的Sample出错, 由于在MP4文件中Chunk和Sample关系使得Chunk中包含的媒体数据无法被元数据正确描述, 并且只需加密H.264/AVC中少部分数据, 与传统加密算法相比, 计算量大幅度减少, 进而实现对视频媒体文件加密效率的提升, 符合视频加密轻量和高效型的研究方向.
3 视频媒体文件加密效率提升技术研究
根据第2节对视频媒体文件格式的分析可知, 我们可以采用一种加密方式来对H.264/AVC视频帧中关键帧的NALU Header数据进行保护, 这种加密技术不仅能有效地加密视频媒体文件, 而且还能大范围地提高加密效率.
本节主要分为以下几个部分来介绍该加密方式, 首先, 在第3.1节中, 介绍了如何在H.264/AVC视频码流中找到关键帧的方法. 接下来, 在第3.2节讨论了在视频流获取和传输过程中可能出现的一些特殊情况. 例如, 由于一些I帧数据包较大, 超过了MTU的最大范围1500, 因此需要使用RTP协议对H.264数据包进行拆包分片, 这种情况下, H.264/AVC视频码流中就不再存在完整的关键帧, 无法直接对关键帧进行加密, 相反, 需要对已经分片的关键帧进行重新组装, 然后再进行加密. 在第3.3节中, 详细介绍了使用国产SM2算法对获取的关键帧NALU Header数据进行加密的方法, 同时也涉及到了加密过程中所使用的秘钥信息. 最后, 在第3.4节中, 以MP4文件为例, 详细说明了视频媒体文件加密处理的流程以及核心算法.
3.1 视频帧类型判断为了实现本文对视频媒体文件加密效率的目的, 首先需要对视频帧类型进行判断并找到关键帧, 在前面已经提到, 每个NALU由一个字节的Header和RBSP组成, 其中NALU Header由3部分组成, forbidden_bit (1 bit), nal_ref_idc (2 bits)代表优先级, nal_unit_type (5 bits)代表NALU的类型. 本文通过表1所示计算方法可以判断出NALU中数据的载荷类型, 计算Header & 0x1F的值, 若值等于1, 便进而找到了视频帧序列中的I Frame. 由于P Frame和B Frame计算方式相同, 所以此方法无法区别出P Frame和B Frame, 但不影响我们对于I Frame的判断.
图3表示使用Elecard Stream Analyzer工具随机截取的一组H.264/AVC码流信息. 通过图3可以直观地观察到I、P、B帧的位置关系, 码流起始部分包含了SEI、SPS、PPS、I Slice这4个结构, 总长度为0x15AC7, 后面的P Slice以及B Slice就各自单独作为一帧, 第1个P帧长度为0x10D36, 第1个B帧长度为0xA5D8, 由此可知我们通过表1的计算方法找到视频序列中所有I帧数据, 对I帧数据的部分信息进行加密处理后, 进而会影响到整个H.264/AVC码流信息, 之后再将码流数据封装成各种视频媒体文件时导致视频文件无法正常播放, 达到加密视频媒体文件的效果.
3.2 MP4文件加密方法研究
本文的视频数据信息通过使用RTSP协议向前端摄像头请求视频流获得, 前端摄像头将H.264裸码流打包后进行网络传输, 接收端接收后进行组包还原裸码流, 在网络传输的过程中, 一些情况下由于一些I帧数据包比较大, 已经超过了MTU的最大范围1500, 所以就需要拆包分片传输, 这里说的拆包发送不是指发送超过1500的数据包时TCP的分段传输或者UDP的IP分片传输, 而是指RTP协议本身对H.264的拆包发送与接收, 在视频流传输过程中H.264的RTP打包有如下3种方式.
(1)单NALU: P帧或者B帧比较小的数据包, 直接将NALU打包成RTP包进行传输RTP Header (12 B) + NALU Header (1 B) + NALU Payload.
(2)多NALU: 特别小的数据包直接将几个NALU放在一个RTP包中.
(3) FUs (fragment units): 一般情况下, 当I帧长度超过MTU的范围, 就必须要拆包组成RTP包了, 拆分成FU-A和FU-B两种RTP包, 而RTP打包方式就变成了RTP Header (12 B) + FU Indicator (1 B) + FU Header (1 B) + NALU payload.
本节研究的第3种打包方式中实际上NALU头部信息被分散填充到FU Indicator和FU Header里面了, bit位按照从左到右编号0–7来算, NALU头中0–2前3个比特位放在FU Indicator的0–2前3个比特位上, 后3–7这5个比特位放入FU Header的后3–7这5个比特位中, 因此查看I帧P帧类型, 遇到FU分片的, 直接看第2个字节, 即FU-B后5位, 这个跟直接看NALU头并无差异. 通过式(1)计算出NALU Header原始数据信息.
$ \begin{split} {\text{NALU Header}} = &\left( {{\rm{FU}}{\text{ Indicator \& 0xE0}}} \right) \\ & | \left( {{\text{FU Header \& 0x1F}}} \right) \end{split} $ | (1) |
如图4中FUs结构图所示, 在FU Indicator结构中若TYPE值为28代表FU-A分片, 若TYPE值为29则代表FU-B分片. 在FU Header结构中1 bit的S表示开始位, 与E所表示的结束位是互斥关系, 若S位置为1则表示NALU单元分片后跟随的NALU payload是NALU载荷的开始部分, 代表一个I帧分片的开始, 否则表示一个I帧分片的结束, 本文通过找到I帧分片开始的数据包, 最终还原出NALU Header的原始数据并使用国密算法对得到的原始数据进行加密处理.
3.3 国密SM2加密处理
国产SM2算法是我国自主研发的公钥密码算法, 基于椭圆曲线多倍点运算单向函数, 现行使用的秘钥长度为256位, 加密算法选择国产SM2算法而不使用国际加密算法的原因是利用非对称加密算法所提供的高安全性的同时可以有效避免使用国际密码技术带来的安全风险, 从而确保加密过程中的安全性.
本文使用开源的Gmlib库进行开发, 具体的加密处理过程为, 用户首先提供一个用于加密的字符串da_hex=“3945208F_7B2144B1_3F36E38A_C6D39F95_88939369_2860B51A_42FB81EF_4DF7C5B8”, 然后使用函数bint_from_str(& da, da_hex, 16)生成用户私钥BINT da, 拥有私钥信息后我们就可以通过ec_mul(&P, &da, &SM2_Fp256_CTX.G, &SM2_Fp 256_CTX)函数来构造椭圆多倍点(仿射坐标), 同时生成公钥信息ECPoint P, 此时我们就可以使用公钥信息并利用sm2_encrypt(out, &outl, msg, sizeof(msg), PC, &SM2_Fp256_CTX, &P)函数来进行加密, 其中PC表示公钥是非压缩表示, msg是经过使用第3.1节和第3.2节中所提出的方法获取的I帧NALU Header数据, 通过sm2_encrypt函数来对msg数据进行加密, 随后, 将加密后的数据与H.264码流一起封装到MP4文件中, 由于NALU Header数据被加密, 导致无法正确解析I、P、B帧, 从而使得MP4文件无法正常播放, 这样就实现了使用国密SM2加密MP4文件的目的, 同时, 与传统加密算法相比, 只需对H.264/AVC中的少部分数据进行加密, 大大减少了计算量, 进而提高了视频媒体文件加密的效率. 使用SM2加密处理I帧NALU Header后的效果如图5所示.
在图5中msg表示包含NALU Header信息的两字节数据“|a”, 经过国密SM2加密后生成图中所示的密文文件ciphertext, 此时加密工作已经完成, MP4文件已经无法打开. 对加密后视频媒体文件解密方式的思路与加密方式相反, 主要是对I帧的部分数据加密后, 再无法区别I帧, 所以采用将所有其他载荷类型SPS、PPS、P Frame、B Frame等都排除后就只剩下加密后的I帧或non-IDR帧, 然后就可以进行解密处理了, 而本文只是在加密数据包后直接使用用户私钥BINT da信息, 通过sm2_decrypt(out, &outl, out, outl, &SM2_Fp256_CTX, &da)函数进行解密处理, 得到图5中的msg(decrypt)解密数据信息“|a”与加密前的原始数据内容一致, 最终成功解密出加密内容.
3.4 MP4文件加密处理流程及算法通过以上研究内容我们使用国密SM2算法来对我们计算出来的I帧NALU Header信息进行加密, 导致I帧、P帧、B帧都无法被正确解析, 成功加密MP4文件, 这种加密方法避免了传统加密方法中需要加密所有视频帧数据的繁琐过程, 并减少了加密时间, 在实现有效加密MP4文件的同时提升了加密的效率, 图6为加密MP4文件方法的流程图.
有效加密MP4文件的方法的具体实现步骤如下.
(1)首先通过RTSP协议rtsp://admin@10.10.3.178:554/h264/ch01/main/av_stream访问海康网络摄像头拉取视频编码格式为H.264视频流信息.
(2)客户端接收到包含网络摄像头视频流信息的RTP数据包.
(3)客户端对接收到的dateSize进行判断, 若
(4)对计算出来的NALUnitType的值通过表1所示的计算方法以及图4中FUs类型判断方式, 判断出NALU类型是否为I帧或者是FUs, 若是其中之一则进行下一步. 否则读取下一个数据包, 进入到步骤(2)中.
(5)将步骤(4)中得到的I帧头部信息或者是FUs中还原出来的NALU Header或non-IDR Header数据使用国密SM2算法对其进行加密处理.
(6)最后判断是否处理完所有I帧数据信息, 若全部处理完成则加密MP4文件的流程完毕. 否则读取下一个数据包, 进入到步骤(2)中.
为了提升视频媒体文件的加密效率, 本文设计了如下算法, 通过该算法可以清楚地看出本文对视频媒体文件进行加密处理的方式.
算法1. 视频媒体文件加密效率提升算法
输入: 媒体数据包headerStart, 媒体数据包大小dataSize.
输出: 媒体数据包密文ciphertextPacket.
1. 如果
2. 计算
3. 判断当前的NALU类型.
4. 若NALU类型值等于5, 表示媒体数据包中包含的是关键帧, 加密步骤: 通过椭圆曲线函数构造SM2算法, 生成私钥BINT Da和公钥ECPoint P信息, 将关键帧的NALU Header数据使用sm2_encrypt和公钥ECPoint P进行加密, 得到密文数据, 使用NALU Header密文数据替换原始媒体数据包headerStart中NALU Header信息, 算法返回ciphertextPacket.
5. 若NALU类型值等于28或29, 表示媒体数据包中包含的是分片的关键帧或non-IDR信息, 使用本文中式(1)还原出NALU Header原始数据信息, 然后执行步骤4中的加密步骤.
6. 若NALU类型值不等于步骤4或步骤5中的值, 算法结束.
4 实验结果与分析为了验证本文提出的基于国密算法的视频媒体文件加密效率提升技术的有效性, 使用国密SM2算法对H.264/AVC视频帧中I帧NALU Header数据进行加密处理的方法, 对MP4文件做加密处理, 加密后的MP4文件在当前市面上大多数的多媒体播放软件上进行测试, 均无法正常播放, 加密效果比较理想, 可以对MP4文件的内容起到很好的保护作用. 为进一步证明加密方法的安全性, 本节将分别进行视觉加密效果分析、峰值信噪比测试、结构相似度测试和抗统计攻击测试, 并通过使用对比实验的方式来对视频媒体文件的加密效率进行分析, 最后对视频加密方法的实际应用效果进行评估.
4.1 实验背景与平台操作系统: Ubuntu 20.04 LTS
处理器: Intel Core i5-8300H CPU@ 2.30 GHz
网络摄像头: 海康威视DS-2CD3232(D)-I5
流媒体服务器: Live555 Media Server
开发语言: C/C++语言
4.2 加密算法的安全性和效率分析为评估视频加密算法的有效性及安全性, 本节使用H.264标准编码器JM 18.6对加密算法的安全性和效率进行测试和分析. 为使结果具有代表性, 从标准视频库中选择了4个视频序列进行分析, 其中包括两个CIF格式的视频(Bus, Presenter)以及两个QCIF格式的视频(Tennis, Mobile). 每个视频序列都展示出了不同的场景组合, 如快速运动、复杂纹理和静止背景, 其中Bus序列呈现了摄像机的移动拍摄效果, Presenter序列包含静态背景和活动前景, Tennis序列中有快速移动的目标, 而Mobile序列则具有复杂的纹理和运动信息.
4.2.1 视觉加密效果分析随着视频媒体文件的生成, 加密过程也同步进行, H.264/AVC视频序列中关键帧的NALU Header信息在此期间被置乱和替代, 使得视频图像的颜色、纹理细节都发生了严重扭曲和模糊变形, 导致视频内容无法理解, 从而达到加密视频的目的. 这里使用了4个基准视频序列来测试加密性能, 视频加密前和加密后的效果如图7所示, 图7(a)–图7(d)是加密前的图像效果, 图7(e)–图7(h)是加密后的效果.
从图7的对比效果中可以很清楚地发现, 加密后的视频图像与原始图像相比, 无论是颜色信息还是纹理信息都发生了巨大的变化, 加密后的视频内容被严重扭曲和模糊, 且没有明文块泄露, 视频内容无法被人眼理解和识别, 这表明视频加密算法满足了视觉安全性的要求.
4.2.2 峰值信噪比和结构相似度测试
除了在主观视觉上证明了视频加密算法的安全性, 我们还需要采用PSNR (峰值信噪比)、SSIM (结构相似性指数)这些客观评价指标来衡量视频的感知质量. PSNR被广泛用于客观地评估视频质量, 通常认为, 当图像的PSNR值低于20 dB时, 图像内容就无法被识别. 与PSNR不同, SSIM是一种更适合人类视觉系统主观感知的评价方法, 它通过测量图像结构失真程度来评估视频质量, SSIM的取值范围为0–1, 数值越接近1则说明视频图像质量越高. 表2给出了4个测试视频序列前50帧加密前后的平均PSNR值和加密后的SSIM值, 并将其作为评估指标.
表2中的结果显示, 所有类型的原始序列视频在未加密时的PSNR值均超过40 dB, 这表明它们具有良好的视频质量和高清晰度. 然而, 在加密后所有视频的PSNR值均低于11 dB, 这意味着加密后的视频质量严重降低, 已难以辨识. 而加密后的视频SSIM值远小于1, 趋近于0, 这表明加密后的视频质量与原始视频质量相比有很大差距. 同时, 相比于QCIF格式的视频, 可以看出加密操作对CIF格式的视频影响更大, 其加密后的SSIM值更低, 加密效果更明显. 因此本文中的加密算法在PSNR和SSIM的客观评价上也是安全的.
4.2.3 抗统计攻击测试统计分析攻击是一种通过对加密数据的统计特征和模式进行分析, 以推断出原始数据或密钥信息的攻击方法. 然而, 在本文的选择性加密过程中, 为确保加密算法的实时性和可操作性, 加密数据只是编码过程中的语法元素. 此外, 多媒体数据不仅是简单的二进制数据, 而是复杂的组织结构, 因此, 攻击者无法仅通过统计分析攻击来获取所有明文或秘钥信息. 为便于分析, 从Bus视频序列中随机提取了一张明文图像和对应的加密图像, 并绘制了如图8所示的统计直方图, 视频帧的直方图反映了像素频率的分布. 对于一个良好的加密算法, 原始视频和加密视频的视频帧直方图要有着明显差异, 而直方图之间的差异越大, 则说明加密算法的加密效果越好, 因此, 视频帧直方图是衡量加密算法效果优劣的重要指标之一.
通过观察图8可以发现, 明文图像的直方图与密文图像的直方图具有较大差异, 没有明显的统计规律, 这一结果表明, 本文提出的视频加密方法可以有效地抵抗统计攻击.
4.2.4 视频媒体文件加密效率分析为了充分分析本文提出的加密方法是否满足对视频媒体文件加密效率提升的要求, 将通过对比实验进行分析, 实验中使用本文提出的加密方法和传统视频加密方法中的非对称RSA加密算法[22]来分别对100–500 MB的MP4文件(由5个标准视频序列转换而来)进行加密, 本文的加密方法主要针对H.264/AVC码流中关键帧的NALU Header数据进行加密, 而RSA算法则将整个MP4文件作为一个二进制文件, 并直接对全文件按字节进行加密. 对比实验的数据在表3中记录, 表3中的加密所需时间表示使用SM2算法和RSA算法对同一个MP4文件进行加密所花费的时间对比, 而视频文件大小则表示使用SM2加密后, 相较于原始文件, 文件大小的变化情况.
从表3中的数据可以得出结论, 基于SM2算法的加密方法相较于RSA算法, 在加密同一个MP4文件时所需的时间显著减少, 而视频文件的大小在加密前后变化不大, 其影响可以忽略不计, 这意味着加解密前后视频的编码数据量和输入数据量不变, 保持了比特率和压缩比的一致性, 这样做的好处是, 在传输和存储视频数据时不会占用过多的空间, 并且不会增加计算的复杂度和对压缩性能造成影响. 为了更加直观地展示本文提出的加密方法对视频媒体文件加密效率的提升效果, 根据表3中的数据绘制出图9中的折线图, 来比较SM2和RSA加密时间之间的差异.
通过分析图9可以清楚地得出结论, 本文所使用的加密方法与传统的RSA算法相比, 在加密同一个MP4文件时, 随着文件大小增大, 加密文件所需时间明显减少, 加密效率显著提升. 图10展示了使用SM2加密方法只处理包含关键帧的数据包与传统RSA加密算法加密所有数据包之间的数量关系.
通过观察图10, 可以明显地发现随着MP4文件大小的增加, 本文所使用的加密方法处理的数据包个数明显少于AES加密算法处理的数据包数量, 这导致需要进行加密处理的数据量也急剧减少, 最终实现了视频媒体文件加密效率的提升.
通过上述分析, 可以得出以下结论, 相较于传统的视频加密算法, 基于SM2算法的加密方法不仅具有更高的加密效率, 而且能够在保障视频数据安全的同时保持比特率和压缩比的一致性, 这一优势对于视频的传输和存储非常有益. 因此, 基于SM2算法的加密方法在视频保护领域具有广阔的应用前景, 并为视频内容的安全传输和高效存储提供了技术支持.
4.3 视频加密算法实际应用效果分析本文介绍了一种针对H.264/AVC码流的视频媒体文件加密效率提升技术, 由于H.264/AVC在视频编码领域有着广泛的应用和市场, 所以本文提出的加密技术可以在视频监控、视频电视会议、远程医疗和视频保密通信等多个领域中得到应用. 为了检验该加密算法在实际应用中的加密效果, 本文选取了一段大学校园内的监控视频, 并提取其中的H.264码流进行加密操作, 其加密效果如图11所示.
通过观察图11, 我们可以看到经过加密后的视频监控码流被杂乱的色块所掩盖, 导致图像无法被人识别和理解, 从而达到了加密的目的, 与此同时, 解密后的视频图像与原图像完全一致, 这证明了该加密算法是无损和可逆的. 由此可见, 该加密算法能够有效地保护视频内容的安全性, 同时在解密过程中不会损失任何信息, 确保了原始图像的完整性和准确性.
通过上述分析可以得出结论, 本文提出的针对 H.264/AVC码流的视频媒体文件加密效率提升技术在实际的视频监控系统中展现了良好的加密效果, 并且解密后的图像质量也较高, 验证了该技术的有效性. 此外, 该技术的应用领域也可以扩展到所有采用H.264/AVC压缩标准的视频流.
5 结语本文的主要贡献是提出一种基于国密算法对视频媒体文件加密效率提升的技术, 通过对H.264/AVC视频帧数据中关键帧的NALU Header以及non-IDR Header数据信息进行加密的处理方法, 在实现对视频媒体文件的有效加密的同时, 大幅度地提升了加密的效率. 从实验结果分析中可以看出, 该方法加密视频媒体文件性能高效, 相比于传统加密过程中所使用的RSA加密算法, 该方法可以有效地减少加密的时间, 减少加密帧的个数、减少加密数据数量, 从而既保证了加密文件的安全性又提高了加密的效率, 能够满足对视频媒体文件加密效率提升的要求.
[1] |
Kannan M, Priya C, Vaishnavi Sree S. A comparative analysis of DES, AES and RSA crypt algorithms for network security in cloud computing. Journal of Emerging Technologies and Innovative Research, 2019, 6(3): 574-582. |
[2] |
王乐. 互联网背景下数字媒体版权保护的系统设计. 现代电子技术, 2021, 44(10): 143-147. DOI:10.16652/j.issn.1004-373x.2021.10.032 |
[3] |
汪朝晖, 张振峰. SM2椭圆曲线公钥密码算法综述. 信息安全研究, 2016, 2(11): 972-982. |
[4] |
Tabash FK, Izharuddin M, Tabash MI. Encryption techniques for H.264/AVC videos: A literature review. Journal of Information Security and Applications, 2019, 45: 20–34.
|
[5] |
周怡钊, 王晓东, 章联军, 等. 基于Logistic和Arnold变换的HEVC选择性加密方案. 计算机应用, 2019, 39(10): 2973-2979. DOI:10.11772/j.issn.1001-9081.2019040742 |
[6] |
Zeng B, Yeung SKA, Zhu SY, et al. Perceptual encryption of H.264 videos: Embedding sign-flips into the integer-based transforms. IEEE Transactions on Information Forensics and Security, 2014, 9(2): 309–320.
|
[7] |
Khlif N, Damak T, Kammoun F, et al. A very efficient encryption scheme for the H.264/AVC CODEC adopted in intra prediction mode. Proceedings of the 2014 International Image Processing, Applications and Systems Conference. Sfax: IEEE, 2014. 1–7.
|
[8] |
Wang YS, O’Neill M, Kurugollu F. Partial encryption by randomized Zig-Zag scanning for video encoding. Proceedings of the 2013 IEEE International Symposium on Circuits and Systems (ISCAS). Beijing: IEEE, 2013. 229–232.
|
[9] |
Ahn J, Shim HJ, Jeon B, et al. Digital video scrambling method using intra prediction mode. Proceedings of the 5th Pacific Rim Conference on Advances in Multimedia Information Processing (PCM 2004). Tokyo: Springer, 2005. 386–393.
|
[10] |
梁剑, 何军辉. 基于宏块编码信息自适应置换的H.264/AVC视频加密方法. 计算机科学, 2022, 49(1): 314-320. DOI:10.11896/jsjkx.201100089 |
[11] |
Xu H, Tong XJ, Zhang M, et al. Dynamic video encryption algorithm for H.264/AVC based on a spatiotemporal chaos system. Journal of the Optical Society of America A, 2016, 33(6): 1166-1174. |
[12] |
韦丞婧, 李国东. 结合超混沌系统和Logistic映射的视频图像加密算法. 计算机工程, 2022, 48(5): 263-271. DOI:10.19678/j.issn.1000-3428.0061608 |
[13] |
Sbiaa F, Kotel S, Zeghid M, et al. A selective encryption scheme with multiple security levels for the H.264/AVC video coding standard. Proceedings of the 2016 IEEE International Conference on Computer & Information Technology (CIT). Nadi: IEEE, 2016. 391–398.
|
[14] |
Shahid Z, Chaumont M, Puech W. Fast protection of H.264/AVC by selective encryption of CAVLC and CABAC for I and P frames. IEEE Transactions on Circuits and Systems for Video Technology, 2011, 21(5): 565-576. |
[15] |
Chung Y, Lee S, Jeon T, et al. Fast video encryption using the H.264 error propagation property for smart mobile devices. Sensors, 2015, 15(4): 7953-7968. DOI:10.3390/s150407953 |
[16] |
Pastuszak G, Trochimiuk M. Architecture design of the high-throughput compensator and interpolator for the H.265/HEVC encoder. Journal of Real-time Image Processing, 2016, 11(4): 663-673. DOI:10.1007/s11554-014-0422-1 |
[17] |
徐辉. 基于混沌的视频数据安全技术研究[博士学位论文]. 哈尔滨: 哈尔滨工业大学, 2019.
|
[18] |
van Wallendael G, De Cock J, van Leuven S, et al. Format-compliant encryption techniques for high efficiency video coding. Proceedings of the 2013 IEEE International Conference on Image Processing. Melbourne: IEEE, 2013. 4583–4587.
|
[19] |
Yang MX, Zhuo L, Zhang J, et al. An efficient format compliant video encryption scheme for HEVC bitstream. Proceedings of the 2015 IEEE International Conference on Progress in Informatics and Computing. Nanjing: IEEE, 2015. 374–378.
|
[20] |
Zhu YL, Li XB, Chen N. An algorithm of extracting I-Frame in compressed video. MATEC Web of Conferences, 2015, 22: 01010. DOI:10.1051/matecconf/20152201010 |
[21] |
Zhao LN, Guan LL. An optimized method and implementation for parsing MP4 metadata. Proceedings of the 2010 IEEE International Conference on Progress in Informatics and Computing. Shanghai: IEEE, 2010. 984–987.
|
[22] |
李云飞, 刘菊琨, 柳青. 改进RSA算法的安全性分析. 计算机应用与软件, 2018, 35(6): 309-312. DOI:10.3969/j.issn.1000-386x.2018.06.056 |