是否可以通过加密特定帧来加密整个视频?

时间:2015-01-31 22:06:43

标签: video encryption ffmpeg

我原本以为如果我加密所有I帧,其余的视频都会被加密,因为B帧和P帧都来自I帧。做了一些测试 - 随机化I帧的每个像素 - 似乎这不可能,所以我想知道它是否可能?要加密整个视频,我是否必须明确加密每一帧?

2 个答案:

答案 0 :(得分:2)

这在很大程度上取决于您要保护的信息。一些例子:

如果您有商业视频流服务,则只能对I帧进行加密,没有人会尝试查看缺少这些帧的电影。但是,根据使用的加密方法,这可能会产生膨胀的数据。

如果您使用例如块密码,则需要将数据加密为块大小的倍数。如果它不完全适合,则必须以这种方式填充每个帧。因此,您将为较大的文件大小交换慢速解密。

此外,这种方法存在问题,因为现在您的视频解码器必须知道加密帧是什么,什么不是。这增加了太多不必要的逻辑。

CON

另一方面,只是加密整个视频而忽略其内部的数据结构更容易。在某些情况下,这也可能更安全。

如果有监控视频,人们仍然可以提取一些信息,例如人们输入和离开建筑物的时间,因为人们的轮廓将是可见的,时间戳可以推断出来。

让我们假设一个监视录像带记录了某人在某处输入PIN的人。尽管它被“加密”,但很容易看到形状移动以从视频中推断出PIN。

答案 1 :(得分:1)

并非所有的B帧和P帧都是来自I帧的衍生图像元素(而是来自其他P帧) - 而那些通常仅从I帧获得一些图像元素。只加密I帧会导致大量信息从未加密的帧中泄漏。

只加密一些帧似乎很难获得很少的收益。加密器需要有关于视频编码和内容的详细知识,但最终只能提供一些脆弱的保护。

如果是速度问题,那么选择快速但不太安全的加密算法,而不是仅通过加密I帧来节省时间。