保护方案定义
‘cenc’ AES-CTR scheme
支持“cenc”方案是必需的。方案类型框中的“SCHMC”字段设置为四个字符的字符串“cenc”。使用 ISO/IEC-14496-15中规定的非结构化视频参考点保护加密视频轨迹,不使用模式加密。
因此,加密字节块和跳过字节块都设置为0。非视频加密轨迹应使用全采样加密方案9.4中规定的方法进行保护。 trackencryptionbox 版本号应设置为0。常量 iv 不允许使用;所有示例的示例 iv 大小不应大于264个 cipher 块,并且所有轨迹都共享一个8字节的 iv 。
对于不使用“cenc”方案的示例,可以使用默认的8字节 iv 大小,但也可以不使用。
请注意,由于示例 iv 大小为8字节,因此可以对小于等于264个 cipher 块长度的示例进行加密,并且可以存在不共享8字节 iv 的示例组。对“cenc”方案的支持是 ISO/IEC common 标准和所有常见的加密实现的必需要求,以便使用“cenc”方案的文件可以被所有解加密器处理。
‘cbc1’ AES-CBC scheme
对cbc1
方案的支持是可选的。
方案类型箱中的SCHM
方案类型字段应为CBC1
。使用符合 ISO/IEC-14496-15标准的结构化视频编码的加密视频轨道不应使用模式加密。因此,encrypt_byte_block
和skip_byte_block
字段应为0。
其他轨道应使用全采样加密方案,视频加密箱的版本号应为0。常量IVS
不应用于加密;per_sample_IV_size
除未加密的样本组之外,不应为0。per_sample_IV_size
(根据9.2定义)可能为16(即128位初始化向量),应在单轨道中设置,或对未加密的轨道设置为0。
在子采样视频轨道中,数据字节的大小应为16字节的倍数,以避免子采样中的部分加密块。注意,对CBC1
方案的支持不是 ISO/IEC common 加密标准的强制要求,并且所有支持CBC1
方案的实现都必须处理CENC
方案,以便使用CENC
方案的文件可以被所有符合 ISO/IEC 国际电信联盟《信息技术安全评估通用标准》的解密器处理。
‘cens’ AES-CTR subsample pattern encryption scheme
“cens”方案的支持是可选的。该方案使用计数器模式保护。
方案类型框(“schm”)的scheme_type字段应设置为“cens”。Track Encryption Box(“tenc”)的版本应为1。除视频外的其他轨道使用9.7中指定的整块全样本加密进行保护,因此skip_byte_block应为0。
使用符合ISO/IEC 14496-15的NAL结构化视频的加密视频轨道应使用子样本加密进行保护,并应使用指定的模式加密。因此,crypt_byte_block和skip_byte_block字段不应为0。不应使用常量IV;对于未加密的样本组,Per_Sample_IV_Size不应为0。
default_Per_Sample_IV_Size和Per_Sample_IV_Size应为8字节。注意1:如果使用Per_Sample_IV_Size为8,则对于长度小于264个密码块的样本,给定KID的InitializationVector值将对于每个样本是唯一的,并且在共享相同KID的所有轨道中,具有唯一8字节IV的样本少于264个。
IV存储量是16字节IV所需存储量的一半。BytesOfProtectedData大小应为16字节的倍数,以避免子样本中的部分密码块。对于scheme_type字段为“cens”(即AES-CTR)的方案类型框的isProtected标志为0x1的情况,计数器值应对于每个KID是唯一的。
注意2:通用加密标准中不强制要求支持“cens”方案,处理“cens”方案的实现也需要处理“cenc”方案,以便使用“cenc”方案的文件可以被ISO/IEC 23001的所有解密器处理。
‘cbcs’ AES-CBC subsample pattern encryption scheme
1-定义
**CBC 支持是可选的。**方案类型盒子(SCH)的方案类型字段(SCH)设置为“cbcs”。版本号( Tenc )应为1。使用 ISO/IEC-14496-15中规定的结构化视频加密使用 NAL 单元的帧来保护它。因此,加密字节块和跳字节块不应为0。使用常量 IV,默认_per_sample_iv_size 和 per_sample_iv_size 应为0。
除了视频以外的其他轨道使用整个块的帧加密,并使用加密跳字节块。模式块的长度即为加密字节块和跳字节块,应等于10。对于所有包括‘avc1’的视频 NAL 单元,切片头应为未加密的。
视频 nal 单元的第一完整字节应开始于一个单一的子采样保护字节范围,该范围从保护数据的开始字节开始,延伸到视频 nal 的末尾。注意对于‘avc vcl nal 单元,加密模式从切片头的下一个字节开始,即在视频 nal 单元的第一完整字节。对于 hevc,加密模式从 byte_conversion_table()结束切片_segment_header()开始,即在视频 nal 单元的第一字节。如果它不会为空,则应存在采样辅助信息,并标识为子采样作为保护范围。
一种解密算法,它通过解析 NAL 单元来定位视频 NAL 单元类型的头,然后解析切片头来定位加密模式的起始点,并解析15个 NAL 大小头确定 NAL 的结束点和与之匹配的子样本保护数据范围。
因此,此算法或(a)此算法支持的样例辅助信息,或(b)样例辅助信息(包含此算法)处理的加密标准协议的“CBCS”方案不强制要求实现“CENC”方案,并且实现“CENC”方案的文件也可以被此部分中的所有解密器处理。
注2:“CBCS”方案不被 ISO/IEC 客户服务标准协议所支持,并且处理“CBCS”方案的实现也被要求处理“CENC”方案,因此,使用“CENC”方案的文件可以被此部分中的所有解密器处理。
“cbcs” AES-CBC模式模式加密方案应用(信息性)
建议使用1:9的加密跳过模式(即10%的部分加密)。尽管语法允许许多不同的加密模式,但建议使用十个块的模式。
这意味着跳过的块将是(10-N)。加密的密码块数N可以跨越多个连续的16字节块(例如,三个加密块后面跟着七个未加密块将导致视频数据的30%部分加密)。
例如,要实现10%的加密,模式的第一个块被加密,接下来的九个块保持未加密。该模式每160个受保护范围的字节重复一次,直到范围的末尾。
如果切片体的受保护范围不是模式长度(例如160字节)的倍数,则模式序列适用于包括整个16字节块和可能留在范围字节长度终止模式的部分16字节块。
受保护数据的字节数,保持未加密。加密在每个视频NAL单元(和子采样)重新启动,即如果样本中有多个视频NAL单元,则它们共享相同的初始化向量。
存储在样本组描述中的常量IV通常跨越电影片段中的所有子样本和样本。这意味着每个子样本的BytesOfProtectedData范围内的每个范围都使用常量IV重新启动加密。
在BytesOfProtectedData小于样本大小的音频样本上使用“cbcs”允许识别音频样本上的清晰前导。建议不要跳过音频数据的受保护范围,因为它可能部分可解码,并且与视频相比的处理的小幅减少不足以证明额外的复杂性。