视频文件保护方法与流程

文档序号:17357617发布日期:2019-04-09 21:49阅读:668来源:国知局
视频文件保护方法与流程

本发明涉及信息安全技术领域,特别涉及视频文件的信息安全技术。



背景技术:

视频水印技术的研发是为了保护数字影视作品的版权,对视频水印的攻击除了一般的简单攻击、检测失效攻击、混淆攻击和移除水印攻击外,由于视频水印的载体是连续播放的视频帧所构成,视频水印还可能遭到帧平均、帧丢弃、帧交换等专门针对视频水印的攻击。

目前视频水印的实现方案可以分为三种:一在原始视频中嵌入水印,即水印嵌入到原始码流中,生成带有水印息的原始视频码流,然后进行压缩编码,提取水印时再对其进行解码;二是在原始视频编码过程中嵌入水印,即在编码压缩时嵌入水印,将水印算法和视频编码相结合;三是在压缩域嵌入水印,直接在经过压缩的视频码流中嵌入水印。上述方案一和方案二必须使用硬件视频编解码器,导致视频水印开发成本高;方案三的视频码流经压缩后,可嵌入水印的空间较小,导致可嵌入的水印内容较少,不适合水印内容较多的情况;并且上述三种方案嵌入水印时没有结合密码算法和完整性验证算法,导致视频文件容易遭到非法编辑和篡改。



技术实现要素:

本发明为解决现有视频水印技术开发成本高,可嵌入的水印内容较少,容易遭到非法编辑和篡改的问题,提供一种视频文件保护方法。

为解决上述技术问题,本发明采用的技术方案是:视频文件保护方法,包括:

将待嵌入原视频文件的水印信息比特化,得到水印明文比特流,然后对水印明文比特流进行密码变换,得到水印密文比特流;

将水印密文比特流与原视频文件的关键信息组合后,对组合信息进行密码学杂凑运算得到哈希值;

分析剥离原视频文件,找出原视频文件中任意一个冗余位字节数大于或等于水印密文比特流和哈希值字节数之和的box组件,并将水印密文比特流和哈希值存储到该box组件的冗余位中,形成新视频文件。

作为进一步优化,所述密码变换采用密码混淆s变换和密码置换l变换。

作为进一步优化,所述密码混淆s变换采用8进8出sbox变换。

作为进一步优化,在原始视频文件中新建box组件,将水印密文比特流和哈希值存储到该新建的box组件中。

作为进一步优化,所述水印信息包括时间、地点和版权所有方。

作为进一步优化,所述原视频文件的关键信息包括原视频文件的包头信息。

作为进一步优化,对程序代码进行代码混淆,对程序代码进行代码混淆,对程序代码的函数接口,和/或参数,和/或实现逻辑进行私有定义。

作为进一步优化,能够提取出新视频文件中的水印信息,提取新视频文件中的水印信息包括:

分析剥离新视频文件,定位新视频文件中存放水印密文比特流和哈希值的box组件;

读取哈希值并进行完整性验证,若验证通过则读取水印密文比特流进行密码反变换,得到水印明文比特流,否则提取水印信息失败。

有益效果是:本发明的方法可以通过程序代码实现,不需要使用硬件视频编解码器,使得视频水印开发成本降低;嵌入水印时不需要对视频进行压缩,能够嵌入的水印内容更多;并且嵌入水印时结合了密码算法和完整性验证算法,使视频文件不容易遭到非法编辑和篡改。本发明特别适用于mp4格式的视频文件。

附图说明

图1是本发明实施例的s盒。

其中,图1中的数据为十六进制数,由于页面大小限制,图中省略数据前的0x。

具体实施方式

下面结合附图和实施例,进一步说明本发明的技术方案。

本发明的技术方案是:视频文件保护方法,包括:

将待嵌入原视频文件的水印信息比特化,得到水印明文比特流,然后对水印明文比特流进行密码变换,得到水印密文比特流;

将水印密文比特流与原视频文件的关键信息组合后,对组合信息进行密码学杂凑运算得到哈希值;

分析剥离原视频文件,找出原视频文件中任意一个冗余位字节数大于或等于水印密文比特流和哈希值字节数之和的box组件,并将水印密文比特流和哈希值存储到该box组件的冗余位中,形成新视频文件。

上述方法结合密码学技术对水印信息加密,并将加密的水印信息与视频关键信息融合进行杂凑运算,得到的哈希值就是完整性校验值,然后将加密的水印信息和完整性校验值嵌入原视频文件得到新视频文件,后续对新视频文件的水印进行编辑修改等操作时,需要进行解密,并且播放视频时需要进行完整性验证,即使视频内容发生1比特的改变,都会导致完整性验证失败,视频无法播放,保障视频内容版权方、发布方的权益。

作为进一步优化,所述密码变换采用密码混淆s变换和密码置换l变换,通过多种密码变换方式,增强加密强度。

作为进一步优化,所述密码混淆s变换采用8进8出sbox变换,选取密码学经典8进8出sbox变换,技术成熟,容易开发。

作为进一步优化,在原始视频文件中新建box组件,将水印密文比特流和哈希值存储到该新建的box组件中,直接新建box组件来存放水印密文比特流和哈希值,避免查询原视频文件中box组件的冗余位,节约时间,同时解决了原视频文件中box组件冗余位的字节数可能不足以存储水印密文比特流和哈希值的问题。

作为进一步优化,所述水印信息包括时间、地点和版权所有方,形成较完整的水印信息。

作为进一步优化,所述原视频文件的关键信息包括原视频文件的包头信息,保证关键信息的全面性。

作为进一步优化,对程序代码进行代码混淆,对程序代码的函数接口,和/或参数,和/或实现逻辑进行私有定义,使攻击者难以获取程序源码,难以破解加密算法,能够进一步防止视频文件被破坏。

作为进一步优化,为方便有权力的人员编辑修改视频文件,本发明的嵌入水印方法是可逆过程,够提取出新视频文件中的水印信息,提取新视频文件中的水印信息包括:

分析剥离新视频文件,定位新视频文件中存放水印密文比特流和哈希值的box组件;

读取哈希值并进行完整性验证,若验证通过则读取水印密文比特流进行密码反变换,得到水印明文比特流,否则提取水印信息失败。

实施例

下面具体举例说明本发明的技术方案。

本例的视频文件保护方法,首先将待嵌入原视频文件的水印信息比特化,得到水印明文比特流,假设本例得到的水印明文比特流有64比特,水印明文比特流表示为w={w00w01w02w03w04w05w06w07w08…w61w62w63}。

然后对水印明文比特流进行8进8出sbox变换,s盒如图1所示,将水印明文比特流分为8比特一组,作为s盒的输入,经过s混淆变换后,输出8比特水印s变换密文,比如选取的第一组8比特水印明文为{w00w01w02w03w04w05w06w07},将其分为两组输入变量x1和x2,x1={w00w01w02w03},x2={w04w05w06w07},再将x1转换为十进制数x1_d,将x2转换为十进制数x2_d,x1_d和x2_d分别对应s盒中的行数和列数,本例假设x1_d=6,x2_d=10,根据图1中6行10列的数据0x7c,0x7c={01111100},即得到该组水印明文比特流对应的水印s变换密文,即{01111100},剩余水印明文比特流按照8比特一个分组,进行上述同样的操作,得到每个分组的水印s变换密文,再将各组的水印s变换密文进行组合,得到水印内容的第一轮密文w’={w00’w01’w02’w03’w04’w05’w06’w07’w08’…w61’w62’w63’}。

将第一轮密文w’作为密码置换l变换的输入,处理后得到最终的水印密文比特流w”。w”={w00”w01”w02”w03”w04”w05”w06”w07”w08”…w61”w62”w63”}=w’⊕(w’<<<2)⊕(w’<<<10)⊕(w’<<<18)⊕(w’<<<24),其中,⊕表示异或运算,<<<表示循环左移,例如w’<<<10表示w’循环左移10位。举例说明,比如w’={11100010110001111001010110101010},进行密码置换l变换过程为:{11100010110001111001010110101010}⊕{10001011000111100101011010101011}⊕{00011110010101101010101110001011}⊕{01010110101010111000101100011110}⊕{10101010111000101100011110010101}={1000101110001100010010000000001},其中w”={1000101110001100010010000000001}。

然后将最终的水印密文比特流与原视频文件的包头信息组合后,对组合信息进行密码学杂凑运算得到哈希值;

然后分析剥离原视频文件,在原视频文件的架构下新建一个box组件,然后将最终的水印密文比特流和哈希值存储到该box组件中,形成新视频文件。

需要提取新视频文件中的水印信息时,分析剥离新视频文件,定位新视频文件中存放水印密文比特流和哈希值的box组件,然后读取哈希值并进行完整性验证,若验证通过则读取水印密文比特流进行密码反变换,得到水印明文比特流,否则提取水印信息失败。

在实际软件产品或者硬件产品应用中,最为普遍的做法是将上述方法当做核心算法库调用,为了进一步抵抗网络层面的攻击破坏,对程序代码进行代码混淆,对程序代码的函数接口、参数和实现逻辑进行私有定义,若无相应的解码工具,攻击者无法得到真实源码。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1