具有链接哈希的签名视频数据
文献发布时间:2023-06-19 19:18:24
技术领域
本公开涉及用于保护程序或数据免受未经授权的活动影响的安全措施领域。具体地,提出了用于对预测编码后的视频数据进行签名的方法和设备。
背景技术
视频序列是视频帧的有序序列,并且视频帧由像素组成。如果对共同的场景进行成像,则连续的视频帧将具有强相关性。在给定过去帧的情况下预测一个视频帧的能力是预测编码的基本假设。预测编码可以描述为特别适用于视频数据的数据压缩技术。
图1A图示了预测编码后的视频序列的由I帧和P帧组成的片段。I帧是具有可独立解码的图像数据的数据结构,可以通过预定义的关联解码操作将其解码为明文视频帧(或视频帧的块)。就其本身而言,P帧是种数据结构,该数据结构的关联解码操作不仅参考P帧自身的图像数据,而且参考至少一个其它I帧或P帧。从概念上且稍微简化地来说,P帧中的图像数据表示相对于其先前的I帧或P帧编码的视频帧的变化或移动。如果解码操作成功,则通常无法区分从P帧和I帧解码的视频帧。
帧间依赖关系在图1A中指示为指向负时间方向t的弧形箭头。在所描绘的简单示例中,每个P帧参考紧接在前的I帧或P帧。如果第一P帧参考第二P帧,则第二P帧必然参考至少一个另外的I帧或P帧。在本公开中,第一P帧将被称为直接参考第二P帧并且间接参考至少一个另外的I帧或P帧。因为I帧中的图像数据是可独立解码的,所以参考链(弧形箭头)不会继续经过I帧。I帧以及后续直接或间接参考该I帧的P帧的组合可以称为图片组(GOP)。图1A中指示了四个GOP:IPP、IPPPP、IPPP、IPPP。
图1B图示了帧间预测的两个进一步发展,其中帧间依赖性再次由弧形箭头指示。除了前向预测的P帧结构外,还使用了双向预测的B帧。基本双向预测操作可以包括参考帧之间的插值,例如平滑。此外,在图1B中可以看出,P帧可以参考不需要紧接其前而是可以在两步或更多步之外的I帧、P帧或B帧。图1B中所示的视频序列IBBPBBIBBPBBI可以表征为GOP,因为它可以在不参考任何其它I帧、P帧或B帧的情况下进行解码。国际电信联盟的ITU-T H.264(2019年6月)建议书“通用视听服务的高级视频编码”规定了使用前向预测帧和双向预测帧两者的视频编码标准。
数字签名为通过非安全信道传输的数字消息提供了一层验证和安全性。通过数字签名,可以验证消息的真实性或完整性,并确保不可否认性。不言而喻,作为特殊情况,视频数据可以进行数字签名。然而,通过不将视频数据作为通用位模式对待,而是利用帧结构,可以获得相当大的效率增益。例如,如果将签名应用于视频数据的指纹而不是视频数据本身,则签名在计算上变得更易于处理—但通常同样安全。在图1A的下半部分中图示了逐帧指纹H
US20190103975公开了对添加到初始多个唯一数据项的数据进行数字签名的方法。所有数据项都通过单向函数转换为相应的等长唯一摘要(或哈希),并且哈希存储为链接数据集,其中每个连续哈希的值取决于先前哈希的值以及最近添加的数据的哈希产生的新哈希。链接数据集(哈希链)中的最近的哈希是所有先前哈希在它们的原始序列中的累积结果,并且数据集中的每个哈希对于最近添加的数据都是唯一的。每个累积哈希通过在计算新哈希之前将一个或多个预先存在的累积哈希合并到源数据中来构造。
虽然根据US20190103975的哈希链的链结构可以防止未经授权方试图替换或删除数据项或者插入未经授权的数据项,但这些教导并不直接适用于对预测编码后的视频数据(即,其中每个“数据项”是视频帧)进行签名。实际上,由于帧间依赖性,将必须容忍一个不可验证的帧指纹将导致一个或多个其它视频帧的指纹不可验证,即使这些视频帧可以成功解码并与其自身的指纹相关联。如果使用IPP…PP格式,则GOP中的所有后续帧都变为“假阴性”,并且在使用B帧的编码格式中,影响可能更为显著。
类似地,US6996717公开了使用哈希函数计算视频序列中的I帧和两种类型的预测帧的链接水印的特定方法。在进行哈希之前,将每个预测帧的帧数据与先前帧的哈希相结合。因此,后预测帧(B)的哈希是根据预测帧的帧数据和较早预测帧(P)的哈希的组合计算得到的。
图2中图示了相关的方法。视频序列上方的弧形箭头指示帧间依赖关系,并且d操作表示解码。使用预定义的哈希函数h,由发送方计算以下指纹:H
这些示例说明了用于对预测编码后的视频数据进行数字签名的可用方法的缺点。
发明内容
本公开的一个目标是提供用于对预测编码后的视频数据进行签名(数字签名)的、具有防止未经授权的替换、移除或插入视频帧的机制的方法和设备。另一目标是提出允许细粒度签名验证的方法和设备。期望相关联的签名验证过程具有有限的错误传播风险,并且具体地是假阴性风险。更进一步的目标是提出适合于具有单向(前向)预测帧和/或双向预测帧的视频编码格式的方法和设备。提出具有上述特征的计算高效的签名技术是具体的目标。
这些目标中的至少一些通过由独立权利要求所限定的本发明来实现。从属权利要求涉及本发明的有利实施例。
在本发明的第一方面中,提供了一种对预测编码后的视频数据进行签名的方法。方法包括:获取包括至少一个I帧和至少一个预测帧的编码后的视频序列,至少一个I帧包含能独立解码的图像数据,至少一个预测帧包含通过参考至少一个其它帧可解码的图像数据;生成每个I帧的指纹H
在本公开中,可以理解,数据项的“指纹”可以通过对数据项进行哈希或者通过对可能与其它数据组合的数据项或其子集执行不同的操作来获得。数据项可以是对视频帧进行编码的图像数据。如本文中所使用的,此外,术语“预测帧”是指单向或双向预测帧,例如上面讨论的P帧和B帧。术语“I帧”和“预测帧”是指图像数据(即代码),而不是这些数据结构编码的明文视频帧。因此,即使是强相关的连续明文视频帧也可以被编码为缺乏对应的相关性的I帧和预测帧。在任何情况下,应理解预测帧的指纹应独立于预测帧所参考的任何其它预测帧的教导,使得预测帧的指纹既独立于其它参考帧的图像数据又独立于其它参考帧的指纹。该教导也可以理解为意味着生成预测帧的指纹而不引入对其它参考帧的图像数据或指纹的任何依赖。实际上,预测帧的指纹通过哈希运算生成,哈希运算的输入不包括从这类其它参考帧导出的数据。
根据本发明的第一方面的签名方法的优点是,如果由于欺诈性操作或由于传输错误,使得接收方无法验证预测帧的指纹,则这将仅影响该预测帧本身。实际上,缺少可验证的指纹的预测帧可能被丢弃或禁止播放。然后,由于预测帧的指纹独立于预测帧直接或间接参考的任何其它预测帧,因此接收方仍然能够恢复视频序列的其它帧并正常验证其真实性。因此,本发明可以消除现有技术中的传播问题(“假阴性”),而不引入新的漏洞。实际上,如果未经授权方删除帧或对帧重新排序,则返回到I帧的参考链将被破坏,并且不可能成功解码。此外,通过参考I帧的所有预测帧的指纹,将可以间接注意到对I帧的未经授权的操作;这增加了发现此类操作的可能性。
在一个实施例中,从预测帧导出的数据包括预测帧的图像数据。可选地,数据可以进一步包括加密盐。本实施例可以减少实施方式中的哈希运算的总数。
在一个实施例中,从预测帧导出的数据包括至少预测帧的图像数据的哈希。尤其是,可以利用图像数据和加密盐的组合的哈希。回顾一下,一方面,哈希是比典型视频帧的图像数据小得多的数据集,并且另一方面,两个数据项通常通过移动到公共存储器空间来连接。在此基础上,本实施例允许在将预测帧的图像数据的哈希与从I帧导出的数据连接起来的轻量级存储器操作之后生成预测帧的指纹。
在一个实施例中,从I帧导出的数据是I帧的指纹H
I帧和预测帧的各自的指纹H
在一个实施例中,缓存从I帧导出的数据,以便在生成直接或间接参考同一I帧的不同预测帧的指纹时重新使用。这避免了重复,并且因此减少了总计算量。
在一个实施例中,预测帧的指纹通过对进一步包括从预测帧直接或间接参考的附加I帧导出的数据的组合进行哈希而生成。I帧和附加I帧可以属于同一个GOP或两个不同的GOP。例如,预测帧可以是参考两个不同的I帧的双向预测帧;在本实施例中,从这两个I帧导出的数据可以被包括在被哈希以生成预测帧的指纹的组合中。请注意,预测帧的指纹与这两个I帧的链接不会引入新的错误场景;实际上,如果I帧中的任何一个的指纹无法在接收方验证,则预测帧的解码无论如何都将失败,因为返回到该I帧的参考链被破坏。
在一些实施例中,视频序列的签名由多个子签名组成,这些子签名针对视频序列的不同片段提供。这允许在播放期间进行连续的签名验证。它还支持对实时视频流进行编码的视频数据的签名,这在视频监控应用中尤其有用。子签名可以被包括在视频序列的元数据中。
在一个实施例中,为单独的GOP提供单独的子签名。GOP的子签名可以包括该GOP的帧的指纹以及相邻(例如,后续)GOP中的帧(例如,I帧)的指纹。这可以保护签名的视频序列免受未经授权的替换、移除或插入GOP。
在本发明的第二方面中,提供了一种被布置为执行上述方法的设备。总的来说,本发明的第二方面具有第一方面的效果和优点,并且可以通过相应程度的技术变化来实施。
本发明进一步涉及一种计算机程序,其包含用于使计算机执行上述方法的指令。计算机程序可以存储或分布在数据载体上。如本文中所使用的,“数据载体”可以是暂时性数据载体(例如调制的电磁波或光波)或非暂时性数据载体。非暂时性数据载体包括易失性存储器和非易失性存储器,例如磁类型、光类型或固态类型的永久性和非永久性存储介质。仍然在“数据载体”的范围内,这种存储器可以是固定安装的或便携式的。
通常,权利要求中使用的所有术语均应根据其在技术领域中的普通含义进行解释,除非本文中另外明确地限定。除非另外明确地说明,否则所有对“一/该元件、设备、部件、装置、步骤等”的引用都应公开解释为指代元件、设备、部件、装置、步骤等的至少一个实例。除非明确地说明,否则本文中公开的任何方法的步骤不必按照所描述的确切顺序执行。
附图说明
现在参考附图以示例的方式描述方面和实施例,在附图中:
图1A示出了预测编码后的视频序列的带有伴随的逐帧指纹和由此生成的签名的片段;
图1B示出了预测编码后的视频序列的进一步包括双向预测帧的片段;
图2图示了解码操作(d)以及预测编码后的视频帧的链式指纹的基于哈希的计算(h)中的数据流;
图3和图4图示了根据本发明的实施例的在对预测编码后的视频数据进行签名的特定方法中的数据流;
图5示出了根据本发明的实施例的用于执行对预测编码后的视频数据进行签名的设备;和
图6是根据本发明的实施例的用于对预测编码后的视频数据进行签名的方法的流程图。
具体实施方式
下文中将参考附图更全面地描述本公开的方面,附图中示出了本发明的特定实施例。然而,这些方面可以以许多不同的形式体现并且不应被解释为限制性的;相反,这些实施例以示例的方式提供,使得本公开将是彻底的和完整的,并且将本发明的所有方面的范围全面地传达给本领域技术人员。遍及说明书,相同的附图标记指代相同的元件。
参考图6,将描述对预测编码后的视频数据进行签名的方法600。基于编码后的视频序列提供签名的方法600可以由适当布置的通用可编程计算机(例如,具有相关的输入和输出接口)执行,并且具体地通过图5中的以框图形式描绘的设备500执行。设备500包括处理电路510、存储器520以及输入-输出接口530,输入-输出接口530适用于与在一些操作阶段期间存储待签名的编码后的视频序列的外部存储器590进行双向通信。设备500和外部存储器590可以由不同的实体拥有和操作,例如当签名作为外部服务提供时的情况,或者由共同的实体提供。设备500的(内部)存储器520可以适合于存储具有用于执行方法600的软件指令的程序521、用于生成签名的密码信息(例如,私钥)以及支持各种内部管理过程的日志、配置文件和数据。设备500可以作为本地计算机或服务器提供,或者可以基于联网(云)处理资源以分布式方式实现。具体地,设备500可以集成在数字视频摄像机中,例如适用于监控应用的视频摄像机。
在方法600的第一步骤610中,获得编码后的视频序列。视频序列包括包含可独立解码的图像数据的至少一个I帧以及包含通过参考至少一个其它帧可解码的图像数据的至少一个预测帧。不要将I帧和预测帧与这些数据结构编码的明文视频帧混淆。可以理解,预测帧可以包括单向预测帧、双向预测帧或两种类型的混合。获得视频数据的动作可以包括获得对存储视频数据的存储器(例如,图5中的外部存储器590)的访问权、下载视频数据和/或接收具有视频数据的传输。视频序列可以以任何合适的格式编码,例如ITU-T H.265、AV1和已经提到的ITU-T H.264。
在第二步骤612中,生成每个I帧的指纹H
在第三步骤614中,每个预测帧的指纹H
H
其中,h是哈希函数,λ是从I帧导出的数据,并且π是从预测帧导出的数据。哈希函数(或单向函数)可以是考虑到待签名的视频数据的敏感性和/或考虑到若视频数据被未经授权方操纵的风险值而提供了足够的安全级别的加密哈希函数。三个示例是SHA-256、SHA3-512和RSA-1024。哈希函数应预先定义(例如,其应是可重现的),使得在验证指纹时可以重新生成指纹。花括号符号{·}指通用数据组合运算,其可以包括线性(并列)连接数据或以各种交错布置方式连接数据。组合运算可以进一步包括对数据的算术运算,例如按位或、异或、乘法、除法或模运算。
现在将描述λ、π的示例选择。在第三步骤614的一种实施方式中,从预测帧导出的数据是预测帧的图像数据。换句话说,第n个预测帧的指纹由下式给出:
H
其中,Pn表示第n个预测帧的图像数据。组合可以进一步包括附加信息σ:
H
其中,σ可以是现有技术中已用于使重复的或常见的安全代码(例如,密码、签名)不易识别的类型的加密盐。具体地,盐的存在可以阻止未经授权方猜测正在使用什么哈希函数。众所周知,潜在的有用的盐包括活动的内部计数器的值、随机数以及签名的时间和地点。此外,第n个预测帧的指纹可以基于第一预测帧的图像数据的子集,其中以预先约定的方式提取子集,以使其在接收方可重复。实际上,根据跨帧应用的并且在视频序列的持续时间内可以保持不变的预定义分段,可以使用仅对视频帧的特定图像带或特定宏块进行编码的图像数据,来替代对整个第n个预测帧进行编码的图像数据Pn。代替加密盐或除了加密盐之外,附加信息σ可以包括帧的序列号n,从而可以发现未经授权的帧删除和帧重新排序。
在第三步骤614的另一实施方式中,从预测帧导出的数据包括至少预测帧的图像数据的哈希:
H
在该实施方式的变体中,可以使用不同的哈希函数来执行内部哈希运算和外部哈希运算。在大量内存操作成本高昂的计算系统中,该实施方式具有的优点是哈希h(Pn)是大小可管理的数据集,其对形成组合{λ,h(Pn)}的成本的贡献可以忽略不计,例如,通过将其传输到处理电路510可以检索输入数据以进行算术运算的存储器空间。
在第三步骤614的可与刚才描述的两个选项自由组合的进一步实施方式中,从I帧导出的数据是I帧的指纹:
H
图3中图示了λ的这种选择与π=Pn进行组合的实施例。根据变体,从I帧导出的数据是I帧的图像数据I的哈希,但是该哈希与在第二步骤612中生成的并且稍后将用于提供签名的I帧的指纹H
对于用于实现方法600的第三步骤614的所有上述选项而言,暂时缓存614.1从I帧导出的数据λ是有利的,以便稍后在再次执行第三步骤614以生成直接或间接参考同一I帧的不同预测帧的指纹时重新使用。
第三步骤614的进一步发展具体处理预测帧直接或间接参考两个I帧的情况。然后,基于从这两个I帧导出的数据λ
H
方法600的执行继续到第四步骤616,提供视频序列的包括所生成的指纹的签名。可以通过在所谓的文档(文本文件或其它数据结构)中收集生成的指纹并对文档进行签名来形成签名。例如,文档签名可以通过非对称加密生成,即,使用密钥对中的私钥,其中公钥已经预先与接收方共享,使得接收方能够验证签名。因此,视频序列的签名可以由文档和文档签名组成。拥有已经以这种方式签名的视频数据的接收方可以通过以下步骤验证其真实性:
1.尝试验证文档签名;
2.如果文档签名验证成功,则尝试验证文档中的指纹;
3.如果文档中的所有指纹都验证成功,则认为视频数据是真实的(验证)。通常,步骤2中的验证包括复制被认为已由发送方执行的指纹生成操作,即重新计算指纹。就其本身而言,步骤1中的验证通常涉及非对称签名设置,其中签名和验证是对应于私钥/公钥的不同加密操作。对称和/或非对称验证操作的其它组合是可能的而不脱离本发明的范围。
第四步骤616可以包括将签名与视频序列相关联。例如,如果视频数据具有除了图像数据之外还包括元数据字段的预定义数据格式,则签名可以通过放置在这样的元数据字段中而与视频数据相关联。在ITU-T H.264格式中,签名可以被包括在视频比特流中的补充增强信息(SEI)消息中。在AV1标准中,签名可以被包括在元数据开放比特流单元(OBU)中。可替代地,第四步骤616包括在数据格式之外在视频数据与签名之间建立关联,例如,通过形成包括视频数据和签名两者的数据结构(容器),并且视频数据将在该数据结构(容器)中传输给预定的接收方。另一选项是将视频数据与签名分离,以允许(较小的)签名通过安全的通信路径传输,而(较大的)视频数据可以通过任意的通信路径传输。这些将签名包括在元数据字段中的替代方案的优势在于,它们不需要修改视频数据的权限(例如,由视频数据所有者授予的授权),并且因此它们可以由对视频数据没有写访问权限的实体执行。
在一些实施例中,第四步骤616提供由多个子签名组成的签名,以允许在视频数据的运行解码过程中对子签名进行连续验证。例如,可以为视频数据的每个GOP提供616一个子签名。因此,子签名可以包括GOP中的帧的指纹,并且可选地包括在前GOP或后续GOP中的帧的指纹。这种类型的子签名可以包括收集提到的指纹的文档和文档签名。为了发现GOP内的未经授权的移除和未经授权的重新排序,发送方与接收方之间可以约定文档中指纹的枚举顺序应与真实帧顺序相对应。另一选项是生成GOP中的所有帧的指纹(具有相邻GOP中的帧的可选指纹,如图1A中所示)的单个指纹,对单个指纹进行签名,并提供视频数据的由单个指纹及其签名组成的签名。这里,可以认为单个指纹是文档,或者可以认为单个指纹是对文档的补充,文档本身是空的。请参阅图1A和随附的解释,为什么该设置可以防止未经授权的替换、移除或插入GOP。
为了执行GOP级签名,第四步骤616可以包括识别616.1多个GOP并为每个识别的GOP提供616.2子签名的子步骤。具体地,GOP级的子签名可以被包括在GOP的第一帧或最后一帧的元数据中,或者子签名可以被插入到这些帧附近的视频比特流中。
上文主要参考几个实施例描述了本公开的方面。然而,如本领域技术人员容易理解的,在所附专利权利要求所限定的本发明的范围内,除了上述公开的实施例之外的其它实施例同样是可能的。
- 具有加盐哈希的签名视频数据
- 音视频签名、导出签名的方法以及比较音视频数据的方法