基于数字签名的视频数据安全传输算法
2021-09-23李汶隆
李汶隆
【摘要】 针对传统视频图像数据传输过程中,视频数据错误检测及抗攻击能力弱的缺点,本文采用了Hash及非对称加密两重加密方法,将待处理视频图像数据进行加密,既保证了Hash散列值的安全,也保证了原始视频数据的安全,实现了视频传输过程中发送、接收双方数据完整性及不可抵赖性。并且,该思想可应用于其它多端用户之间数据交互的安全应用场景,具有较好的普适性。
【关键词】 视频图像 错误检测 散列值 非对称加密 数据安全
引言:
随着社会和经济的发展,社会总体治安形势不断变化,对视频内容的清晰度、可靠性、安全传输等要求越来越高。然而,视频传输场景是复杂多变的,通过视频编码压缩后的视频流在减少冗余信息的同时,也降低了视频流抗击错误及防篡改的能力。所以,在传输信道上对视频流进行加密及在接收端对视频流进行错误检测是非常重要的。对视频流进行加密传输可以防止视频内容被窃取,对视频流进行错误检测才能采用相应的策略对它进行错误恢复和错误隐藏,因此,一种行之有效的视频数据安全传输算法致关重要。
一、相关研究
目前,常规错误检测方法主要在视频传输层和视频解码层实施。所谓视频传输层,既通过在视频流传输前进行视频数据的错误检测;在视频解码层,主要通过对视频流数据进行解码,通过视频压缩标准语义信息进行错误检测。
1.1视频传输层上的错误检测
在参考文献[1-2]中,作者对视频传输层错误检测方法进行了深入分析。视频流在网络上传输主要基于TCP或者UDP协议进行传输,这种基于包交换的网络中,视频流被拆分为一个个数据包,主要包含了包头、视频流信息。根据传输协议要求,包头中带有数据包的顺序信息,则在解码端通过数据组包后的顺序来判别传输过程中是否丢包,该方法主要是通过传输协议的维度来判别数据是否完整。
传输层的另一种错误检测手段是FEC。该方法主要通过视频压缩标准中的错误校验编码来判别,如果带有校验编码的比特数据发生错误,则可判别视频数据在传输过程中发生错误。以上两种在传输层采用的错误识别方法,从理论角度,方法可行,但在码流中加入了非编码数据的冗余信息,其代价是牺牲了一定的网络带宽,在实际工作中,采用的不多。
1.2视频解码层上的错误检测
视频错误识别技术经过多年的发展,在视频解码层有多种视频错误识别技术方案。其中主要有基于语法错误识别、频域错误识别及基于视频内容特征信息的错误识别方案。
1.2.1基于视频内容特征的錯误识别方案
该方案主要通过对视频内容特征信息的理解进行错误识别。根据绝大多数视频图像内容平滑特性,在脉冲和差分脉冲采样编码过程中,相邻两行图像像素值接近,如果其差值大于一定的阈值,则判断视频图像内容被篡改或丢失。文献[2]中采用基于宏块为单位进行差值判断的方法,Mitchell和Tabatabai等提出基于DCT变换的损伤检测方法:通过检测该处理块边界像素与该处理块相邻的四个相邻块之间的像素差值,在四个方向形成四个差值矢量,并分别进行DCT变换。如果处理块之间的差值矢量小于一定阈值,则判断视频内容没有发生变化;如果大于一定阈值,则判断被篡改或数据丢失。
1.2.2频域检测方案
文献[1-2]中还提到,Lam和Reibman等研究了在频域检测误码的方法。通过在视频块之字形扫描后插入同步状态,由于视频块每行的个数是固定的,如果两个同步状态之间的视频块个数N发生变化,则进一步确定发生错误的位置。然后利用加权算法得到当前视频图像块与上一行视频图像块之间的均方差,考虑人眼视觉特性,对低频系数赋予较高的权重,对高频系数赋予较低的权重则有最大误差的视频块就被认为是发生错误的视频图像块。如果N>,则将该视频图像块分开;如果N<,则将该视频图像块与相临视频块合并。如果有更多的视频图像块被篡改,则重复以上过程,直到视频块的个数达到。这种错误识别的过程实际上就是进行错误隐藏的过程。
1.2.3基于语法的错误识别方案
在文献[7]中提到基于语法的错误识别方案,该方案通过在解码层检测码流比特中的元素是否和视频压缩标准相符来判断视频传输过程中是否发生篡改或者数据丢失。在码流接收端,对视频流进行解码,如果发现不满足视频压缩标准中相应的语法元素,则判断在传输过程中发生错误。该方案的优点是检测方法符合视频压缩标准,容易理解与实现,并且不会改变视频流原有结构和数据,不会增加视频冗余信息。但在实际应用场景中,并不是所有传输错误都会有上述特征。如果发生传输错误以后,视频流比特仍然满足视频语法要求,则该方案就会因为没有及时发现错误,导致错误累积,后续视频数据的解码也会错误,严重影响后续视频数据的解码及画面显示,即为错误滞后效应。
如图1所示,用传统的基于语法错误识别方案来进行检测的例子,图1-(a)的第六个宏块发生的比特错误不能被识别,则解码器就不会采取相应的策略对它进行处理。图1-(b)中,第二个和第四个宏块发生的比特错误不能被识别,则继续解码,当解码到第七个宏块时,解码器所接收码流的语法元素不符合句法结构,则该片余下的宏块就不会被解码器解码。虽然第一到第六个宏块解码不会发生明显的错误,但是它们的完整性也遭到破坏。
通过实验表明,基于语法的错误识别方案的错误识别成功率仅为0.1~0.4,而其正确定位率因为受到错误识别滞后效应的影响,正确率仅仅在0.05~0.15之间。也就是说基于语法的错误识别方案面对大多数错误场景都无法做到很好地错误识别。
二、基于数字签名的视频数据安全传输算法
为了克服传统检测方法的不足,现在很多学者提出了在编码端嵌入水印信息的办法,并使水印信息和视频数据之间建立某些强制关系。如果在解码时发现这些约定关系不被满足,则可判断接收到的数据遭到篡改,即发生传输错误。
在文献[5]中,作者提出了在编码端一个DCT块内设置若干个检测点,将每个检测点上的DCT系数全部圆整为邻近的偶数。解码端则在解码时对这些检测点位置的DCT系数进行检查,如果检查到的DCT系数为奇数,则说明该编码块出错。这种方法虽然能够有效的检测出错误宏块,但是,在网络传输信道错综复杂的今天,信道中传输的码流极易遭到严重的破坏,极易发生遭到破坏的检测点上的DCT系数在解码端仍为偶数的这中情况,这样就不能有效的检测出当前发生的错误。基于此,本文提出了一种新的错误检测及防篡改方法。
2.1基本思想
为了克服现有技术上的缺点,本发明提出了一种以Hash数字签名为基础的视频图像传输检测方法。通过对视频图像处理单元(宏块)进行Hash函数处理,来保障视频图像数据在传输过程中不被篡改及有效检测。
在编码端对视频帧处理单元DCT数据采用散列(Hash)函数进行处理得到散列值,并对散列值采用非对称算法进行签名,同时将签名后的Hash值链接到当前处理宏块DCT的头部成为一个新的数据。在解码端,对该宏块DCT系数头部用非对称算法进行解密,来确定该数据块的来源,如果能正常解密则视为合法,然后再将DCT数据进行散列(Hash)函数处理得到一个新的散列值,将此散列值与用非对称算法进行解密后的旧散列值进行对比,如果两个散列值是相同的,说明该视频内容没有被修改过。以此来确定视频传输内容的完整性,防止在传输过程中被篡改。
2.2算法建模
本文利用视频图像时间动态特性和空间相对关系进行建模,再对不同模型得到的结果进行融合,主要过程如下:
1.首先,在编码端,对经过之字变换(zia-zia)扫描之后的DCT系数M用Hash算法加密产生散列值Z。在数学上保证,只要改变DCT系数M,重新Hash加密产生的Z1与Z不相等。将散列值Z作为DCT系数M的头部形成新的数据块DT=(Z,M)。
2.在编码端,对DT用非对称加密算法进行公钥(IKA)加密,形成密文SA=D(DT,IKA),SA为视频编码端对DCT系數的签名。
3.在接收端,用私钥(IKB)对密文SA进行解密得到视频处理块DCT系数Mdec与散列值头部信息Zdec。用Hash算法对Mdec进行加密产生散列值Zmdec。
4.将Zdec与Zmdec进行比较,如果相等,则该视频数据在传输过程中未被篡改;否则,该视频数据在传输过程中发生篡改或丢失,可进一步对视频数据进行错误隐藏/容错处理,提升视觉显示效果。
2.3算法分析
和传统视频数据错误检测方法相比,本文采用Hash及非对称加密算法,既保证了散列值的安全,也保证了DCT系数的安全,同时,利用了Hash算法不可逆的特点,实现了数据的完整性和不可抵赖性,Hash算法及非对称加密算法是业内较为成熟的实现方法,因此,本文的技术实现较为简便并且可靠。
三、结束语
为解决传统视频数据错误检测方法的不足,本文提出了基于数字签名的视频数据安全传输方法。该方法基本思想在于,通过Hash及非对称加密算法,对视频编码数据块进行处理,确保了数据的完整性和不可抵赖性。在实际工程应用中,可针对实际业务场景对视频数据安全的等级要求,分别在图像层、Slice层或者宏块层实施该方法,具有较好的场景适应性。同时,本文采用的基于数字签名的视频数据安全传输方法基本思想,具有较好的实用性,可应用于其他安全应用场景中。
参 考 文 献
[1] 范文杰,H.264数字视频差错控制技术的研究[D].成都,成都理工大学档案馆,2006.
[2] 范文杰,李灿平等,基于数字水印的H.264视频传输错误检测,2006.(8):131-133.
[3] 郑秋梅,刘楠,王风华, 基于复杂攻击的脆弱水印图像完整性认证算法[J],计算机科学,2020.47(10):332-338.
[4]席红旗,常晓鹏, 一种基于非对称加密算法和哈希函数的数字签名方案研究[J],河南教育学院学报,2012.21(1):36-37.
[5] 张平,李锦涛,曹刚,基于脆弱水印的压缩视频错误隐藏技术[J],微电子学与计算机,2003.(12):61-63,67.
[6] 黄若宏,李毕详等,基于DCT域数字水印算法的视频流和屏幕流保护方法研究[J],计算机安全,2007.(10):22-26.
[7] 范文杰,H.264数字视频差错控制技术的研究[D].成都,成都理工大学档案馆,2006