一种可裁剪防篡改视频存储的方法与系统与流程
未命名
07-12
阅读:68
评论:0

1.本发明涉及视频防篡改领域,具体为一种可裁剪防篡改视频存储的方法与系统。
背景技术:
2.随着监控设备的日益应用广泛,视频资料的真实性具有重大意义,而随着科技的发展,视频篡改严重影响视频资料的真实性,而对应防篡改技术的发展就具有重大意义,现有对视频文件防篡改的方法是:生成防篡改流程,把原始的视频文件进行哈希计算得到哈希值,使用设备私钥进行对哈希值进行加密得到签名值,签名值作为视频文件防篡改依据。检测是否被篡改流程,把待检测的视频文件进行哈希计算得到哈希值一,使用设备公钥对签名值进行解密得到哈希值二,如果哈希值一与哈希值二相同,则视频文件未被篡改,如果不同则视频文件被篡改,如申请号为cn201510472855.9中所公开内容,当前防篡改方案只能对整个视频文件进行防篡改,不能对视频文件部分的数据进行防篡改,使用应用范围受限,具有较大局限性。
技术实现要素:
3.本发明的目的在于提供一种可裁剪防篡改视频存储的方法与系统,扩大视频防篡改的对象,具有对完整视频防篡改验证的同时,对剪切视频也能进行防篡改验证,以解决现有的技术缺陷和不能达到的技术要求。
4.为实现上述目的,本发明提供如下技术方案:一种可裁剪防篡改视频存储的系统,其包括:
5.视频侦组模块,用于视频处理,生成i帧组,然后将i帧组数据发送到视频帧组哈希树模块与mp4全树打包模块;
6.视频帧组哈希树模块,用于接收视频侦组模块处理完成后的i帧组,根据i帧组的数据计算出i帧组哈希值,生成哈希树,再根据算法得出视频帧组根哈希值,并将视频帧组根哈希值发送给视频帧组签名模模块;
7.视频帧组签名模模块,用于接收视频帧组哈希树模块的视频帧组根哈希值,使用设备私钥对视频帧组根哈希值进行加密得到视频帧组签名,并将视频帧组签名发送给mp4全树打包模块;
8.mp4全树打包模块,用于接收视频侦组模块的i帧组数据和视频帧组签名模的视频帧组签名,将接收的两份数据分别存储到两个不同的子文件中,再将两个子文件生成mp4视频文件,并将mp4视频文件发给视频帧组裁剪模块;
9.视频帧组裁剪模块,用于接收mp4全树打包模块中的mp4视频文件和向多层哈希链生成模块发送i帧组的视频数据,并对mp4全树打包模块中的mp4视频文件进行视频流截取部分i帧组操作并进行编号,将视频帧最大序号maxseq与裁剪出i帧组序号发送视频帧组位图模块,将i帧组的视频数据发送给多层哈希链生成模块,再将视频帧组签名和截取后部分i帧组发送给mp4裁剪打包模块;
10.视频帧组位图模块,用于接收视频帧组裁剪模块中的视频帧最大序号maxseq与裁剪出i帧组序号,生成视频帧组位图,再将最大序号maxseq与视频帧组位图发送给多层哈希链生成模块与mp4裁剪打包模块;
11.多层哈希链生成模块,用于接收视频帧组裁剪模块发送的i帧组的视频数据,并接收视频帧组位图模块中的最大序号maxseq与视频帧组位图,生成多层哈希队列,再将多层哈希队列发送mp4裁剪打包模块;
12.mp4裁剪打包模块,用于接收视频帧组裁剪模块中的视频帧组签名和截取后部分i帧组,接收视频帧组位图模块中的最大序号maxseq与视频帧组位图,接收多层哈希链生成模块中的多层哈希队列,并将截取后部分i帧组保存到一个子文件中,再将视频帧组签名、最大序号maxseq、视频帧组位图和多层哈希队列保存到另一个子文件中,再将两个子文件生成mp4视频文件发送给防篡改解析模块;
13.防篡改解析模块,用于接收并验证mp4裁剪打包模块生成mp4视频文件,将视频帧组签名发送到防篡改验证模块,将截取后部分i帧组、多层哈希队列、最大序号maxseq与视频帧组位图发送给根哈希链还原模块;
14.根哈希链还原模块,用于接收防篡改解析模块中的截取后部分i帧组、多层哈希队列、最大序号maxseq与视频帧组位图,复原生成视频帧组根哈希值,并将视频帧组根哈希值发送给防篡改验证模块;
15.防篡改验证模块,用于接收防篡改解析模块中的视频帧组签名和根哈希链还原模块中的视频帧组根哈希值,并使用设备公钥解密视频帧组签名得到解密串,再将解密串与视频帧组根哈希值对比,判断裁剪视频的数据是否被篡改;
16.设备私钥:用于加密生成视频帧组防篡改签名,为视频生成源私自持有;
17.设备公钥:用于验证视频帧组是否被篡改,设备公钥公开给验证端;
18.本技术利用设备私钥、视频帧组模块、视频帧组哈希树模块、视频帧组签名模块和mp4全树打包模块,实现整个视频文件的防篡改功能,再利用视频帧组裁剪模块、视频帧组位图模块、多层哈希链生成模块、mp4裁剪打包模块、防篡改解析模块、根哈希链还原模块和防篡改验证模块,完成对裁剪视频的防篡改验证,本技术通过各模块之间的配合,实现视频整体的防篡改验证的同时,具有对裁剪视频的防篡改验证的功能,扩大了视频防篡改的对象范围,具有多功能性和广泛的应用性。
19.一种可裁剪防篡改视频存储方法,其包括以下步骤:
20.1)、频帧组模块把视频生成源生成视频帧进行视频编码后,生成i帧组,i帧组为最小可以解码单元,视频帧组模块把i帧组发送视频帧组哈希树模块与mp4全树打包模块;
21.2)、视频帧组哈希树模块接收视频帧组模块的i帧组,使用sha256哈希算法得到该i帧组哈希值,对生成i帧组哈希值从零开始编号,按照使用左小右大建立二叉哈希树,再把i帧组的最大序号maxseq加一后转为二进制值,二进制值的最高位数作为树高h,并进入dfs深度优先搜索处理,把二进制值bitvalue与树高h,起始位p做为dfs参数传入,把初始调用dfs最终汇总的dfs返回值,作为视频帧组根哈希值,视频帧组哈希树模块把视频帧组根哈希值发送给视频帧组签名模块模块;
22.3)、视频帧组签名模块接收视频帧组哈希树模块的视频帧组根哈希值,使用设备私钥对视频帧组根哈希值进行加密得到视频帧组签名。视频帧组签名模块把视频帧组签名
发送给mp4全树打包模块;
23.4)、mp4全树打包模块接收视频帧组模块的i帧组数据存到mp4容器的mdat的数据at om结构中,mp4全树打包模块接收视频帧组签名模块的视频帧组签名存储到mp4容器的udt a的用户定义数据atom结构中,最终生成mp4视频文件,内嵌视频帧组签名,mp4全树打包模块把mp4视频文件发给视频帧组裁剪模块;
24.5)、视频帧组裁剪模块接收mp4全树打包模块的mp4视频文件,对mp4视频文件进行视频流截取部分i帧组操作,并将i帧组从零开始编号,再把视频帧最大序号maxseq与裁剪出i帧组序号发送视频帧组位图模块;
25.视频帧组裁剪模块接收多层哈希链生成模块获取i帧组的视频数据的请求,将截取后部分i帧组和视频帧组签名发送mp4裁剪打包模块;
26.6)、视频帧组位图模块接收视频帧最大序号maxseq与裁剪出i帧组序号,生成(maxse q+1)/8个字节长度的视频帧组位图,视频帧组位图模块把最大序号maxseq与视频帧组位图发送给多层哈希链生成模块与mp4裁剪打包模块;通过让视频帧组位图参与防篡改验证,让用户知道视频文件的那些视频帧被裁剪,防止视频分片的恶意拼接。
27.7)、多层哈希链生成模块接收视频帧组位图模块的最大序号maxseq与视频帧组位图,从零到最大序号maxseq读取视频帧组位图的位值为零部分,根据视频帧组位图的位置得到缺失的i帧组序号,再把缺失的i帧组序号向视频帧组裁剪模块获取i帧组的视频数据,使用sha256哈希算法视频数据计算得到该i帧组哈希值,保存到哈希链中,生成多层哈希链,把从低层多层到高层哈希链进行连接合并生成一个多层哈希队列,将多层哈希队列发送mp4裁剪打包模块;多层哈希链生成模块生成由少量的i帧组哈希值构成多层哈希队列,可实现结合原有视频帧组签名对裁剪后缺失的i帧组视频哈希值进行视频篡改验证。
28.8)、mp4裁剪打包模块接收视频帧组裁剪模块的截取后部分i帧组保存到mp4容器的mdat的数据atom结构中,接收到视频帧组裁剪模块的视频帧组签名、多层哈希链生成模块的多层哈希队列、视频帧组位图模块的最大序号maxseq与视频帧组位图,保存到mp4容器的udta的用户定义数据atom结构中,最终生成裁剪后mp4视频文件,发送给防篡改解析模块。
29.9)、防篡改解析模块验证mp4裁剪打包模块生成的mp4视频文件,从mp4视频文件的udta的用户定义数据atom结构获取视频帧组签名,并把视频帧组签名发送给防篡改验证模块,再从接收的mp4视频文件的udta的用户定义数据atom结构取出多层哈希队列、取出i帧组数据、获取最大序号maxseq与视频帧组位图发送给根哈希链还原模块;
30.10)、根哈希链还原模块接收防篡改解析模块的最大序号maxseq与视频帧组位图bitm ap,多层哈希队列mulhashfifo,i帧组数据,按照视频帧组哈希树模块还原哈希二叉树,获取哈希二叉树的根节点的哈希值,把最大序号maxseq,视频帧组位图bitmap,节点哈希队列nodehashfifo,多层哈希队列mulhashfifo作为入参,生成多层还原链,再进行迭代处理得到视频帧组根哈希值,将得到的视频帧组根哈希值发送给防篡改验证模块;
31.11)、防篡改验证模块接收根哈希链还原模块的视频帧组根哈希值和防篡改解析模块中的视频帧组签名,并通过设备公钥解密视频帧组签名得到解密串,判断裁剪视频是否被篡改;
32.本技术通过哈希二叉树与多层哈希队列机制合并相邻缺失i帧组哈希值,对缺失
的哈希值数量进行压缩,减少在mp4文件的恢复数据存储量,提高储存空间利用率,提高储存效率。
33.优选的,所述视频帧组模块中一个i帧组由i帧、p帧与b帧组成;
34.本技术的视频帧组模块中,i帧组为最小可以解码单元,一个i帧组包含一个i帧,多个的p帧与b帧。
35.优选的,所述视频帧组哈希树模块中二进制值bitvalue的初始值为maxseq,起始位p的初始值为零;
36.本技术中视频帧组哈希树模块中由i帧组生成的哈希树,其树根为视频帧组根哈希。
37.优选的,所述视频帧组哈希树模块中dfs返回值的确定步骤为:
38.5.1)、当h大于零,且(1《《h)&bitvalue不等零时,生成二叉树左儿子的dfs传入参数bitvalue_l/h_l/p_l,其中bitvalue_l为((1《《h)-1),h_l为h-1,p_l为p;生成二叉树右儿子的dfs传入参数bitvalue_r与h_r,其中bitvalue_r为((1《《h)-1)&bitvalue,h_r为h-1,p_r为p+(1《《h);
39.5.2)、当h大于零,且(1《《h)&bitvalue等于零时,并且((1《《h)-1)&bitvalue不等于零,生成二叉树左儿子的dfs传入参数bitvalue_l/h_l/p_l,其中bitvalue_l为bit value,h_l为h-1,p_l为p,二叉树右儿子的dfs值为零;
40.5.3)、dfs发现传入bitvalue为零,则dfs返回值为零;
41.5.4)、dfs发现传入bitvalue非零,且h为零,取序号为p的i帧组哈希值,作为df s返回值;
42.5.5)、dfs迭代处理收到二叉树左儿子与二叉树右儿子的dfs返回值,把两个进行字符串叠加使用sha256哈希算法得到该节点的哈希值,把该节点的哈希值作为这层dfs返回值;
43.本技术根据任何i帧组的数据被修改都会导致视频帧组根哈希值变化的原理,利用视频帧组根哈希值是否发生变化,来判定视频是否被篡改。
44.优选的,所述多层哈希链生成模块中多层哈链生成步骤为:
45.6.1)、生成第一层哈希链与位图与最大序号,位图所有位值初始全零,最大序号为零;
46.6.2)、把缺失的i帧组序号向视频帧组裁剪模块获取i帧组的视频数据,使用sha256哈希算法视频数据计算得到该i帧组哈希值,保存到第一层哈希链,一层位图中的i帧组序号的位值更新为一,最大序号更新为i帧组序号;
47.6.3)、生成第二层哈希链与二层位图与二层最大序号,二层位图所有位值初始全零,二层最大序号初始为零,从零到第一层最大序号读取第一层的位图;
48.6.4)、当判断连续两位置出现都等于一,且偶数位置在前,则进行合并操作,把这个两个序号的i帧组哈希值进行字符串连接,使用sha256哈希算法视频数据计算得到合并哈希值,合并序号为i帧组的序号除二(两个i帧组的序号除二后值相同),把合并哈希值放入到二层哈希链,二层位图中合并序号位置的位值更新为一,二层最大序号更新为合并序号,同时在第一层哈希链中删除这个两个序号序号的i帧组哈希值;
49.6.5)、按照第二层的方法处理第三层哈希链,第四层哈希链直到处理完成后,最大
序号为零时,停止多层哈链处理。
50.优选的,所述多层哈希链生成模块中多层哈希队列的生成为:把从低层多层到高层哈希链进行连接合并;
51.本技术通过生成多层哈希队列,来减少数据存储量,提高验证效率。
52.优选的,所述根哈希链还原模块中还源链的生成步骤为:
53.8.1)、第一层还原链,把最大序号maxseq,视频帧组位图bitmap,节点哈希队列nod ehashfifo,多层哈希队列mulhashfifo作为入参;
54.8.2)、从0到maxseq读取视频帧组位图,当读取位值等于一时,从节点哈希队列nod ehashfifo取出一个节点哈希值a,判断该位置pos是否为奇数位;
55.8.3)、如果是奇数位,则判断位置pos是否等于maxseq,如果位置pos等于maxseq,则设定哈希值b为零;
56.8.4)、如果位置pos不等于maxseq,则判断视频帧组位图bitmap的pos加一的位值;
57.8.5)、如果位值等于一则从节点哈希队列nodehashfifo取出一个哈希值b,如果位值不等于一则从多层哈希队列mulhashfifo取出一个哈希值b;
58.8.6)、把节点哈希值a与哈希值b按照字符串合并后,进行sha256哈希算法得到得到新哈希值c;
59.8.7)、把新哈希值放到第二层还原链的节点哈希队列nextnodehashfifo中,视频帧组位图nextbitmap的位置pos除二的位值更新为一;
60.8.8)、第一层处理完成后,生成第二层还原链的视频帧组位图nextbitmap,节点哈希队列nextnodehashfifo;
61.8.9)、第二层还原链最大序号nextmaxseq为第一层maxseq除二再加一;
62.8.10)、把第二层还原链最大序号nextmaxseq,第二层还原链的视频帧组位图nextbit map,节点哈希队列nextnodehashfifo,以及剩余多层哈希队列mulhashfifo做为入参,按照第一还原链处理方式迭代处理。
63.优选的,所述根哈希链还原模块中通过迭代处理得到视频帧组根哈希值的步骤为;
64.9.1)、将生成的还原链一直进行迭代处理,一直处理到nextmaxseq等于一时,此时节点哈希队列nextnodehashfifo有且只存在一个节点哈希值,该节点哈希值做为视频帧组根哈希值;
65.9.2)、通过这个方式把裁剪后i帧组视频数据以及被压缩过多层哈希队列mulhashfif o最终生成哈希二叉树的树根,得到视频帧组根哈希值。
66.优选的,所述防篡改验证模块判断裁剪视频是否被篡改的步骤:
67.10.1)、将解密串与视频帧组根哈希值进行对比;
68.10.2)、解密串与视频帧组根哈希值相同,裁剪的i帧组数据没有被篡改;
69.10.3)、解密串与视频帧组根哈希值不相同,裁剪的i帧组数据则被篡改。
70.与现有技术相比,本发明的有益效果是:本技术通过将视频储存方法与视频防篡改系统相结合,首先通过哈希二叉树与多层哈希队列机制合并相邻缺失i帧组哈希值,对缺失的哈希值数量进行压缩,减少在mp4文件的恢复数据存储量,较少数据处理量,提高视频篡改的验证效率,并将整体视频篡改验证和裁剪视频篡改验证相结合,扩大视频篡改验证
的实用范围,具有多功能性和应用的广泛性。
附图说明
71.图1为本发明的整体功能关系示意图;
72.图2为本发明中根哈希链还原模块读取视频帧组位图生成视频帧组根哈希的原理示意图
具体实施方式
73.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
74.请参阅图,本发明实施例
75.实施例:
76.根据图1所示:一种可裁剪防篡改视频存储的系统,其包括:
77.视频侦组模块1,用于视频处理,生成i帧组,然后将i帧组数据发送到视频帧组哈希树模块2与mp4全树打包模块5;
78.视频帧组哈希树模块2,用于接收视频侦组模块1处理完成后的i帧组,根据i帧组的数据计算出i帧组哈希值,生成哈希树,再根据算法得出视频帧组根哈希值,并将视频帧组根哈希值发送给视频帧组签名模3模块;
79.视频帧组签名模3模块,用于接收视频帧组哈希树模块2的视频帧组根哈希值,使用设备私钥对视频帧组根哈希值进行加密得到视频帧组签名,并将视频帧组签名发送给mp4全树打包模块5;
80.mp4全树打包模块5,用于接收视频侦组模块1的i帧组数据和视频帧组签名模3的视频帧组签名,将接收的两份数据分别存储到两个不同的子文件中,再将两个子文件生成mp4视频文件,并将mp4视频文件发给视频帧组裁剪模块6;
81.视频帧组裁剪模块6,用于接收mp4全树打包模块5中的mp4视频文件和向多层哈希链生成模块8发送i帧组的视频数据,并对mp4全树打包模块5中的mp4视频文件进行视频流截取部分i帧组操作并进行编号,将视频帧最大序号maxseq与裁剪出i帧组序号发送视频帧组位图模块7,将i帧组的视频数据发送给多层哈希链生成模块8,再将视频帧组签名和截取后部分i帧组发送给mp4裁剪打包模块9;
82.视频帧组位图模块7,用于接收视频帧组裁剪模块6中的视频帧最大序号maxseq与裁剪出i帧组序号,生成视频帧组位图,再将最大序号maxseq与视频帧组位图发送给多层哈希链生成模块8与mp4裁剪打包模块9;通过让视频帧组位图参与防篡改验证,让用户知道视频文件的那些视频帧被裁剪,防止视频分片的恶意拼接。
83.多层哈希链生成模块8,用于接收视频帧组裁剪模块6发送的i帧组的视频数据,并接收视频帧组位图模块7中的最大序号maxseq与视频帧组位图,生成多层哈希队列,再将多层哈希队列发送mp4裁剪打包模块9;多层哈希链生成模块8生成由少量的i帧组哈希值构成多层哈希队列,可实现结合原有视频帧组签名对裁剪后缺失的i帧组视频哈希值进行视频
篡改验证。
84.mp4裁剪打包模块9,用于接收视频帧组裁剪模块6中的视频帧组签名和截取后部分i帧组,接收视频帧组位图模块7中的最大序号maxseq与视频帧组位图,接收多层哈希链生成模块8中的多层哈希队列,并将截取后部分i帧组保存到一个子文件中,再将视频帧组签名、最大序号maxseq、视频帧组位图和多层哈希队列保存到另一个子文件中,再将两个子文件生成mp4视频文件发送给防篡改解析模块10;
85.防篡改解析模块10,用于接收并验证mp4裁剪打包模块9生成mp4视频文件,将视频帧组签名发送到防篡改验证模块12,将截取后部分i帧组、多层哈希队列、最大序号maxse q与视频帧组位图发送给根哈希链还原模块11;
86.根哈希链还原模块11,用于接收防篡改解析模块10中的截取后部分i帧组、多层哈希队列、最大序号maxseq与视频帧组位图,复原生成视频帧组根哈希值,并将视频帧组根哈希值发送给防篡改验证模块12;
87.防篡改验证模块12,用于接收防篡改解析模块10中的视频帧组签名和根哈希链还原模块11中的视频帧组根哈希值,并使用设备公钥解密视频帧组签名得到解密串,再将解密串与视频帧组根哈希值对比,判断裁剪视频的数据是否被篡改;
88.设备私钥:用于加密生成视频帧组防篡改签名,为视频生成源私自持有;
89.设备公钥:用于验证视频帧组是否被篡改,设备公钥公开给验证端;
90.本技术利用设备私钥、视频帧组模块、视频帧组哈希树模块、视频帧组签名模块和mp4全树打包模块,利用防串检测可以按照视频帧组哈希树模块的方法对mp4的i帧组重新生成视频帧组根哈希值,使用设备公钥对视频帧组签名进行解密得到文件携带视频帧组根哈希值,比较来两个哈希值可实现整个视频文件的防篡改功能,再利用视频帧组裁剪模块、视频帧组位图模块、多层哈希链生成模块、mp4裁剪打包模块、防篡改解析模块、根哈希链还原模块和防篡改验证模块,对裁剪后缺失的i帧组视频哈希值进行视频篡改验证,完成对裁剪视频的防篡改验证,本技术通过各模块之间的配合,实现视频整体的防篡改验证的同时,具有对裁剪视频的防篡改验证的功能,扩大了视频防篡改的对象范围,具有多功能性和广泛的应用性。
91.一种可裁剪防篡改视频存储方法,其包括以下步骤:
92.1)、频帧组模块1把视频生成源生成视频帧进行视频编码后,生成i帧组,i帧组为最小可以解码单元,视频帧组模块1把i帧组发送视频帧组哈希树模块2与mp4全树打包模块5;
93.2)、视频帧组哈希树模块2接收视频帧组模块1的i帧组,使用sha256哈希算法得到该i帧组哈希值,对生成i帧组哈希值从零开始编号,按照使用左小右大建立二叉哈希树,再把i帧组的最大序号maxseq加一后转为二进制值,二进制值的最高位数作为树高h,并进入dfs深度优先搜索处理,把二进制值bitvalue与树高h,起始位p做为dfs参数传入,把初始调用dfs最终汇总的dfs返回值,作为视频帧组根哈希值,视频帧组哈希树模块2把视频帧组根哈希值发送给视频帧组签名模块3模块;
94.3)、视频帧组签名模块3接收视频帧组哈希树模块2的视频帧组根哈希值,使用设备私钥对视频帧组根哈希值进行加密得到视频帧组签名。视频帧组签名模块3把视频帧组签名发送给mp4全树打包模块5;
95.4)、mp4全树打包模块5接收视频帧组模块1的i帧组数据存到mp4容器的mdat的数据atom结构中,mp4全树打包模块5接收视频帧组签名模块3的视频帧组签名存储到mp4容器的udta的用户定义数据atom结构中,最终生成mp4视频文件,内嵌视频帧组签名,mp4全树打包模块5把mp4视频文件发给视频帧组裁剪模块6;
96.5)、视频帧组裁剪模块6接收mp4全树打包模块5的mp4视频文件,对mp4视频文件进行视频流截取部分i帧组操作,并将i帧组从零开始编号,再把视频帧最大序号maxseq与裁剪出i帧组序号发送视频帧组位图模块7;
97.视频帧组裁剪模块6接收多层哈希链生成模块8获取i帧组的视频数据的请求,将截取后部分i帧组和视频帧组签名发送mp4裁剪打包模块9;
98.6)、视频帧组位图模块7接收视频帧最大序号maxseq与裁剪出i帧组序号,生成(max seq+1)/8个字节长度的视频帧组位图,视频帧组位图模块7把最大序号maxseq与视频帧组位图发送给多层哈希链生成模块8与mp4裁剪打包模块9;
99.7)、多层哈希链生成模块8接收视频帧组位图模块7的最大序号maxseq与视频帧组位图,从零到最大序号maxseq读取视频帧组位图的位值为零部分,根据视频帧组位图的位置得到缺失的i帧组序号,再把缺失的i帧组序号向视频帧组裁剪模块6获取i帧组的视频数据,使用sha256哈希算法视频数据计算得到该i帧组哈希值,保存到哈希链中,生成多层哈希链,把从低层多层到高层哈希链进行连接合并生成一个多层哈希队列,将多层哈希队列发送mp4裁剪打包模块9;
100.8)、mp4裁剪打包模块9接收视频帧组裁剪模块6的截取后部分i帧组保存到mp4容器的mdat的数据atom结构中,接收到视频帧组裁剪模块6的视频帧组签名、多层哈希链生成模块8的多层哈希队列、视频帧组位图模块7的最大序号maxseq与视频帧组位图,保存到mp4容器的udta的用户定义数据atom结构中,最终生成裁剪后mp4视频文件,发送给防篡改解析模块10。
101.9)、防篡改解析模块10验证mp4裁剪打包模块9生成的mp4视频文件,从mp4视频文件的udta的用户定义数据atom结构获取视频帧组签名,并把视频帧组签名发送给防篡改验证模块12,再从接收的mp4视频文件的udta的用户定义数据atom结构取出多层哈希队列、取出i帧组数据、获取最大序号maxseq与视频帧组位图发送给根哈希链还原模块11;
102.10)、根哈希链还原模块11接收防篡改解析模块10的最大序号maxseq与视频帧组位图bitmap,多层哈希队列mulhashfifo,i帧组数据,按照视频帧组哈希树模块2还原哈希二叉树,获取哈希二叉树的根节点的哈希值,把最大序号maxseq,视频帧组位图bitmap,节点哈希队列nodehashfifo,多层哈希队列mulhashfifo作为入参,生成多层还原链,再进行迭代处理得到视频帧组根哈希值,将得到的视频帧组根哈希值发送给防篡改验证模块12;
103.11)、防篡改验证模块12接收根哈希链还原模块11的视频帧组根哈希值和防篡改解析模块10中的视频帧组签名,并通过设备公钥解密视频帧组签名得到解密串,判断裁剪视频是否被篡改;
104.本技术通过哈希二叉树与多层哈希队列机制合并相邻缺失i帧组哈希值,对缺失的哈希值数量进行压缩,减少在mp4文件的恢复数据存储量,提高储存空间利用率,提高储存效率。
105.所述视频帧组模块1中一个i帧组由i帧、p帧与b帧组成;
ehashfifo,多层哈希队列mulhashfifo作为入参;
124.8.2)、从0到maxseq读取视频帧组位图,当读取位值等于一时,从节点哈希队列nod ehashfifo取出一个节点哈希值a,判断该位置pos是否为奇数位;
125.8.3)、如果是奇数位,则判断位置pos是否等于maxseq,如果位置pos等于maxseq,则设定哈希值b为零;
126.8.4)、如果位置pos不等于maxseq,则判断视频帧组位图bitmap的pos加一的位值;
127.8.5)、如果位值等于一则从节点哈希队列nodehashfifo取出一个哈希值b,如果位值不等于一则从多层哈希队列mulhashfifo取出一个哈希值b;
128.8.6)、把节点哈希值a与哈希值b按照字符串合并后,进行sha256哈希算法得到得到新哈希值c;
129.8.7)、把新哈希值放到第二层还原链的节点哈希队列nextnodehashfifo中,视频帧组位图nextbitmap的位置pos除二的位值更新为一;
130.8.8)、第一层处理完成后,生成第二层还原链的视频帧组位图nextbitmap,节点哈希队列nextnodehashfifo;
131.8.9)、第二层还原链最大序号nextmaxseq为第一层maxseq除二再加一;
132.8.10)、把第二层还原链最大序号nextmaxseq,第二层还原链的视频帧组位图nextbit map,节点哈希队列nextnodehashfifo,以及剩余多层哈希队列mulhashfifo做为入参,按照第一还原链处理方式迭代处理。
133.本技术所述根哈希链还原模块11中通过迭代处理得到视频帧组根哈希值的步骤为;
134.9.1)、将生成的还原链一直进行迭代处理,一直处理到nextmaxseq等于一时,此时节点哈希队列nextnodehashfifo有且只存在一个节点哈希值,该节点哈希值做为视频帧组根哈希值;
135.9.2)、通过这个方式把裁剪后i帧组视频数据以及被压缩过多层哈希队列mulhashfif o最终生成哈希二叉树的树根,得到视频帧组根哈希值。
136.本技术所述防篡改验证模块12判断裁剪视频是否被篡改的步骤:
137.10.1)、将解密串与视频帧组根哈希值进行对比;
138.10.2)、解密串与视频帧组根哈希值相同,裁剪的i帧组数据没有被篡改;
139.10.3)、解密串与视频帧组根哈希值不相同,裁剪的i帧组数据则被篡改。
140.工作原理:利用防串检测可以按照视频帧组哈希树模块的方法对mp4的i帧组重新生成视频帧组根哈希值,使用设备公钥对视频帧组签名进行解密得到文件携带视频帧组根哈希值,比较来两个哈希值可实现整个视频文件的防篡改功能,再并将视频进行裁剪,再通过哈希二叉树与多层哈希队列机制合并相邻缺失i帧组哈希值,利用视频帧组签名,通过设备公钥解密视频帧组签名得到解密串,判断裁剪视频是否被篡改。
141.以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明
内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
142.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也能够经适当组合,形成本领域技术人员能够理解的其他实施方式。
技术特征:
1.一种可裁剪防篡改视频存储的系统,其特征在于,其包括:视频侦组模块(1),用于视频处理,生成i帧组,然后将i帧组数据发送到视频帧组哈希树模块(2)与mp4全树打包模块(5);视频帧组哈希树模块(2),用于接收视频侦组模块(1)处理完成后的i帧组,根据i帧组的数据计算出i帧组哈希值,生成哈希树,再根据算法得出视频帧组根哈希值,并将视频帧组根哈希值发送给视频帧组签名模(3)模块;视频帧组签名模(3)模块,用于接收视频帧组哈希树模块(2)的视频帧组根哈希值,使用设备私钥对视频帧组根哈希值进行加密得到视频帧组签名,并将视频帧组签名发送给mp4全树打包模块(5);mp4全树打包模块(5),用于接收视频侦组模块(1)的i帧组数据和视频帧组签名模(3)的视频帧组签名,将接收的两份数据分别存储到两个不同的子文件中,再将两个子文件生成mp4视频文件,并将mp4视频文件发给视频帧组裁剪模块(6);视频帧组裁剪模块(6),用于接收mp4全树打包模块(5)中的mp4视频文件和向多层哈希链生成模块(8)发送i帧组的视频数据,并对mp4全树打包模块(5)中的mp4视频文件进行视频流截取部分i帧组操作并进行编号,将视频帧最大序号maxseq与裁剪出i帧组序号发送视频帧组位图模块(7),将i帧组的视频数据发送给多层哈希链生成模块(8),再将视频帧组签名和截取后部分i帧组发送给mp4裁剪打包模块(9);视频帧组位图模块(7),用于接收视频帧组裁剪模块(6)中的视频帧最大序号maxse q与裁剪出i帧组序号,生成视频帧组位图,再将最大序号maxseq与视频帧组位图发送给多层哈希链生成模块(8)与mp4裁剪打包模块(9);多层哈希链生成模块(8),用于接收视频帧组裁剪模块(6)的i帧组的视频数据,并接收视频帧组位图模块(7)中的最大序号maxseq与视频帧组位图,生成多层哈希队列,再将多层哈希队列发送mp4裁剪打包模块(9);mp4裁剪打包模块(9),用于接收视频帧组裁剪模块(6)中的视频帧组签名和截取后部分i帧组,接收视频帧组位图模块(7)中的最大序号maxseq与视频帧组位图,接收多层哈希链生成模块(8)中的多层哈希队列,并将截取后部分i帧组保存到一个子文件中,再将视频帧组签名、最大序号maxseq、视频帧组位图和多层哈希队列保存到另一个子文件中,再将两个子文件生成mp4视频文件发送给防篡改解析模块(10);防篡改解析模块(10),用于接收并验证mp4裁剪打包模块(9)生成mp4视频文件,将视频帧组签名发送到防篡改验证模块(12),将截取后部分i帧组、多层哈希队列、最大序号maxseq与视频帧组位图发送给根哈希链还原模块(11);根哈希链还原模块(11),用于接收防篡改解析模块(10)中的截取后部分i帧组、多层哈希队列、最大序号maxseq与视频帧组位图,复原生成视频帧组根哈希值,并将视频帧组根哈希值发送给防篡改验证模块(12);防篡改验证模块(12),用于接收防篡改解析模块(10)中的视频帧组签名和根哈希链还原模块(11)中的视频帧组根哈希值,并使用设备公钥解密视频帧组签名得到解密串,再将解密串与视频帧组根哈希值对比,判断裁剪视频的数据是否被篡改;设备私钥:用于加密生成视频帧组防篡改签名,为视频生成源私自持有;设备公钥:用于验证视频帧组是否被篡改,设备公钥公开给验证端。
2.一种可裁剪防篡改视频存储方法,其特征在于,其包括以下步骤:1)、频帧组模块(1)把视频生成源生成视频帧进行视频编码后,生成i帧组,i帧组为最小可以解码单元,视频帧组模块(1)把i帧组发送视频帧组哈希树模块(2)与mp4全树打包模块(5);2)、视频帧组哈希树模块(2)接收视频帧组模块(1)的i帧组,使用sha256哈希算法得到该i帧组哈希值,对生成i帧组哈希值从零开始编号,按照使用左小右大建立二叉哈希树,再把i帧组的最大序号maxseq加一后转为二进制值,二进制值的最高位数作为树高h,并进入dfs深度优先搜索处理,把二进制值bitvalue与树高h,起始位p做为dfs参数传入,把初始调用dfs最终汇总的dfs返回值,作为视频帧组根哈希值,视频帧组哈希树模块(2)把视频帧组根哈希值发送给视频帧组签名模块(3)模块;3)、视频帧组签名模块(3)接收视频帧组哈希树模块(2)的视频帧组根哈希值,使用设备私钥对视频帧组根哈希值进行加密得到视频帧组签名。视频帧组签名模块(3)把视频帧组签名发送给mp4全树打包模块(5);4)、mp4全树打包模块(5)接收视频帧组模块(1)的i帧组数据存到mp4容器的mda t的数据atom结构中,mp4全树打包模块(5)接收视频帧组签名模块(3)的视频帧组签名存储到mp4容器的udta的用户定义数据atom结构中,最终生成mp4视频文件,内嵌视频帧组签名,mp4全树打包模块(5)把mp4视频文件发给视频帧组裁剪模块(6);5)、视频帧组裁剪模块(6)接收mp4全树打包模块(5)的mp4视频文件,对mp4视频文件进行视频流截取部分i帧组操作,并将i帧组从零开始编号,再把视频帧最大序号maxseq与裁剪出i帧组序号发送视频帧组位图模块(7);视频帧组裁剪模块(6)接收多层哈希链生成模块(8)获取i帧组的视频数据的请求,将截取后部分i帧组和视频帧组签名发送mp4裁剪打包模块(9);6)、视频帧组位图模块(7)接收视频帧最大序号maxseq与裁剪出i帧组序号,生成(maxseq+1)/8个字节长度的视频帧组位图,视频帧组位图模块(7)把最大序号maxseq与视频帧组位图发送给多层哈希链生成模块(8)与mp4裁剪打包模块(9);7)、多层哈希链生成模块(8)接收视频帧组位图模块(7)的最大序号maxseq与视频帧组位图,从零到最大序号maxseq读取视频帧组位图的位值为零部分,根据视频帧组位图的位置得到缺失的i帧组序号,再把缺失的i帧组序号向视频帧组裁剪模块(6)获取i帧组的视频数据,使用sha256哈希算法视频数据计算得到该i帧组哈希值,保存到哈希链中,生成多层哈希链,把从低层多层到高层哈希链进行连接合并生成一个多层哈希队列,将多层哈希队列发送mp4裁剪打包模块(9);8)、mp4裁剪打包模块(9)接收视频帧组裁剪模块(6)的截取后部分i帧组保存到mp4容器的mdat的数据atom结构中,接收到视频帧组裁剪模块(6)的视频帧组签名、多层哈希链生成模块(8)的多层哈希队列、视频帧组位图模块(7)的最大序号maxseq与视频帧组位图,保存到mp4容器的udta的用户定义数据atom结构中,最终生成裁剪后mp4视频文件,发送给防篡改解析模块(10)。9)、防篡改解析模块(10)验证mp4裁剪打包模块(9)生成的mp4视频文件,从mp4视频文件的udta的用户定义数据atom结构获取视频帧组签名,并把视频帧组签名发送给防篡改验证模块(12),再从接收的mp4视频文件的udta的用户定义数据atom结构取出多层哈希队列、
取出i帧组数据、获取最大序号maxseq与视频帧组位图发送给根哈希链还原模块(11);10)、根哈希链还原模块(11)接收防篡改解析模块(10)的最大序号maxseq与视频帧组位图bitmap,多层哈希队列mulhashfifo,i帧组数据,按照视频帧组哈希树模块(2)还原哈希二叉树,获取哈希二叉树的根节点的哈希值,把最大序号maxseq,视频帧组位图bitmap,节点哈希队列nodehashfifo,多层哈希队列mulhashfifo作为入参,生成多层还原链,再进行迭代处理得到视频帧组根哈希值,将得到的视频帧组根哈希值发送给防篡改验证模块(12);11)、防篡改验证模块(12)接收根哈希链还原模块(11)的视频帧组根哈希值和防篡改解析模块(10)中的视频帧组签名,并通过设备公钥解密视频帧组签名得到解密串,判断裁剪视频是否被篡改。3.根据权利要求2所述的一种可裁剪防篡改视频存储方法,其特征在于,所述视频帧组模块(1)中一个i帧组由i帧、p帧与b帧组成。4.根据权利要求2所述的一种可裁剪防篡改视频存储方法,其特征在于,所述视频帧组哈希树模块(2)中二进制值bitvalue的初始值为maxseq,起始位p的初始值为零。5.根据权利要求2所述的一种可裁剪防篡改视频存储方法,其特征在于,所述视频帧组哈希树模块(2)中dfs返回值的确定步骤为:5.1)、当h大于零,且(1<<h)&bitvalue不等零时,生成二叉树左儿子的dfs传入参数bitvalue_l/h_l/p_l,其中bitvalue_l为((1<<h)-1),h_l为h-1,p_l为p;生成二叉树右儿子的dfs传入参数bitvalue_r与h_r,其中bitvalue_r为((1<<h)-1)&bitvalue,h_r为h-1,p_r为p+(1<<h);5.2)、当h大于零,且(1<<h)&bitvalue等于零时,并且((1<<h)-1)&bitvalue不等于零,生成二叉树左儿子的dfs传入参数bitvalue_l/h_l/p_l,其中bitvalue_l为bit value,h_l为h-1,p_l为p,二叉树右儿子的dfs值为零;5.3)、dfs发现传入bitvalue为零,则dfs返回值为零;5.4)、dfs发现传入bitvalue非零,且h为零,取序号为p的i帧组哈希值,作为df s返回值;5.5)、dfs迭代处理收到二叉树左儿子与二叉树儿子的dfs返回值,把两个进行字符串叠加使用sha256哈希算法得到该节点的哈希值,把该节点的哈希值作为这层dfs返回值。6.据权利要求2所述的一种可裁剪防篡改视频存储方法,其特征在于,所述多层哈希链生成模块(8)中多层哈链生成步骤为:6.1)、生成第一层哈希链与位图与最大序号,位图所有位值初始全零,最大序号为零;6.2)、把缺失的i帧组序号向视频帧组裁剪模块(6)获取i帧组的视频数据,使用sha256哈希算法视频数据计算得到该i帧组哈希值,保存到第一层哈希链,一层位图中的i帧组序号的位值更新为一,最大序号更新为i帧组序号;6.3)、生成第二层哈希链与二层位图与二层最大序号,二层位图所有位值初始全零,二层最大序号初始为零,从零到第一层最大序号读取第一层的位图;6.4)、当判断连续两位置出现都等于一,且偶数位置在前,则进行合并操作,把这个两个序号的i帧组哈希值进行字符串连接,使用sha256哈希算法视频数据计算得到合并哈希值,合并序号为i帧组的序号除二,把合并哈希值放入到二层哈希链,二层位图中合并序号
位置的位值更新为一,二层最大序号更新为合并序号,同时在第一层哈希链中删除这个两个序号序号的i帧组哈希值;6.5)、按照第二层的方法处理第三层哈希链,第四层哈希链直到处理完成后,最大序号为零时,停止多层哈链处理。7.据权利要求6所述的一种可裁剪防篡改视频存储方法,其特征在于,所述多层哈希链生成模块(8)中多层哈希队列的生成为:把从低层多层到高层哈希链进行连接合并。8.据权利要求2所述的一种可裁剪防篡改视频存储方法,其特征在于,所述根哈希链还原模块(11)中还源链的生成步骤为:8.1)、第一层还原链,把最大序号maxseq,视频帧组位图bitmap,节点哈希队列nod ehashfifo,多层哈希队列mulhashfifo作为入参;8.2)、从0到maxseq读取视频帧组位图,当读取位值等于一时,从节点哈希队列nod ehashfifo取出一个节点哈希值a,判断该位置pos是否为奇数位;8.3)、如果是奇数位,则判断位置pos是否等于maxseq,如果位置pos等于maxseq,则设定哈希值b为零;8.4)、如果位置pos不等于maxseq,则判断视频帧组位图bitmap的pos加一的位值;8.5)、如果位值等于一则从节点哈希队列nodehashfifo取出一个哈希值b,如果位值不等于一则从多层哈希队列mulhashfifo取出一个哈希值b;8.6)、把节点哈希值a与哈希值b按照字符串合并后,进行sha256哈希算法得到得到新哈希值c;8.7)、把新哈希值放到第二层还原链的节点哈希队列nextnodehashfifo中,视频帧组位图nextbitmap的位置pos除二的位值更新为一;8.8)、第一层处理完成后,生成第二层还原链的视频帧组位图nextbitmap,节点哈希队列nextnodehashfifo;8.9)、第二层还原链最大序号nextmaxseq为第一层maxseq除二再加一;8.10)、把第二层还原链最大序号nextmaxseq,第二层还原链的视频帧组位图nextbit map,节点哈希队列nextnodehashfifo,以及剩余多层哈希队列mulhashfifo做为入参,按照第一还原链处理方式迭代处理。9.据权利要求8所述的一种可裁剪防篡改视频存储方法,其特征在于,所述根哈希链还原模块(11)中通过迭代处理得到视频帧组根哈希值的步骤为;9.1)、将生成的还原链一直进行迭代处理,一直处理到nextmaxseq等于一时,此时节点哈希队列nextnodehashfifo有且只存在一个节点哈希值,该节点哈希值做为视频帧组根哈希值;9.2)、通过这个方式把裁剪后i帧组视频数据以及被压缩过多层哈希队列mulhashfif o最终生成哈希二叉树的树根,得到视频帧组根哈希值。10.据权利要求8所述的一种可裁剪防篡改视频存储方法,其特征在于,所述防篡改验证模块(12)判断裁剪视频是否被篡改的步骤:10.1)、将解密串与视频帧组根哈希值进行对比;10.2)、解密串与视频帧组根哈希值相同,裁剪的i帧组数据没有被篡改;10.3)、解密串与视频帧组根哈希值不相同,裁剪的i帧组数据则被篡改。
技术总结
本发明涉及视频防篡改领域,为一种可裁剪防篡改视频存储的方法与系统,包括视频帧组模块、视频帧组哈希树模块、视频帧组签名模块、MP4全树打包模块、视频帧组裁剪模块、视频帧组位图模块、多层哈希链生成模块、MP4裁剪打包模块、防篡改解析模块、根哈希链还原模块和防篡改验证模块,本发明的有益效果是:本申请通过将视频储存方法与视频防篡改系统相结合,首先通过哈希二叉树与多层哈希队列机制合并相邻缺失I帧组哈希值,对缺失的哈希值数量进行压缩,减少在MP4文件的恢复数据存储量,较少数据处理量,提高视频篡改的验证效率,并将整体视频篡改验证和裁剪视频篡改验证相结合,扩大视频篡改验证的实用范围,具有多功能性和应用的广泛性。广泛性。广泛性。
技术研发人员:金国庆 李华松 陈尚武
受保护的技术使用者:深蓝感知(杭州)物联科技有限公司
技术研发日:2023.03.08
技术公布日:2023/7/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/