当前位置:首页 >资讯 >如何加密嵌入式视频数据库数据


多媒体数据在网络中的传输和存储更频繁,因此多媒体信息的安全性和保密性非常重要,成为一个新的研究热点。根据系统的需要和加密算法的现状,提出了基于嵌入式数据库BerkeleyDB的视频数据加密系统设计方案。

一、视频系统整体设计

进入信息时代以来,随着宽带网络和多媒体技术的快速发展和日益成熟,以数字硬盘录像机(DVR、DigitalVideorecorder)、磁盘阵列等相关产品为代表的新一代监控设备,引发了视频监控系统的革命性变化,使视频监控行业迅速向数字化、网络深化和智能化方向发送。实时数据的加密、压缩、检索、存储和传输是数字视频监控领域的关键技术。

1.系统硬件的整体结构。

嵌入式视频数据库数据如何加密?

经过对嵌入式视频存储和检索的关键技术的深入分析,系统选择并设计了NAS-3000的软硬件结构,给出了系统初始化的主要数据结构和函数接口。数据库使用。数据存储。数据检索。数据转发过程描述,下图为系统硬件结构示意图。整个系统主要包括四个部分:主控制板、存储板、扩展板和外围电路。

2.应用软件的整体结构。

整个系统一般可分为以下部分:数据访问模块:视频特征访问模块、视频数据加密模块、嵌入式数据库模块、查询接口模块等模块。数据访问模块、数据访问模块负责视频数据和特征索引的存储和管理,是数据库系统的底层存储引擎,将用户与数据的物理存储分开。这是基于内容视频检索的核心,通过视频结构分析和图像处理、目标识别等技术,提取视频的结构特征和语义信息,生成视频数据的索引。数据加密是将MPEG编码技术结合起来,将图像数据从明文转换为密文,从而实现数据的安全存储和传输。嵌入式数据库是基于内容视频存储和检索系统的神经中心,主要负责视频索引的管理和数据库的日常维护,并为上层程序提供数据查询。数据访问和数据库管理的编程接口,如图2所示。

嵌入式视频数据库数据如何加密?

二、视频数据编码与加密设计

1.选择性加密算法。

然而,由于图像和视频信号数据量大,这种加密方法的计算量非常大,不仅浪费资源,而且难以保证实时性和实用性。为了解决这一矛盾,研究视频的信源特征,将密码原理与视频技术相结合,加密数据。考虑到多媒体数据的加密是对内容的加密,选择加密对内容敏感的部分数据可以降低计算复杂性,同时满足安全性。本文选择了VEA算法作为视频数据的加密算法,如图3所示。

实现和分析VEA算法。

VEA算法的主要内容是使用私钥随机改变DCT系数的符号位。由于VEA算法仅对非零DCT系数的1bit变化或操作,因此大六降低了操作的复杂性。MPEG视频加密的目的是阻止未经授权的接收者通过混乱的视频舞蹈来解码视频流。常用的方法是对视频流S(称为明文)进行可逆转换EKL,获得C=EKL(S),授权用户使用另一个私钥K2,通过转换:DKL=E-1KL可以解密接收到的视频流,整个解密操作如下:

嵌入式视频数据库数据如何加密?

MPEG压缩视频S是一个比特流,可以说是:S=..S1..S2..SM..SM+1...SM+2...Si(i=l,2...DC系数和A系数的符号位(对于I帧Y、Cr、CB块,因为DC系数是差分值的符号位,所以DC系数是差分编码)

VEA算法的加密方程EK可表达如下:

嵌入式视频数据库数据如何加密?

加密算法随机改变DCT系数的符号位,根据给定符号位,一个符号位或不变(相应的密钥位为O),或从0到1,或从1到O(相应的密钥位为1)。VEA的加密效果反映在MPEG视频解码的IDCTIDCT逆变器中。即使只有一些DCT系数的变化,这些变化也会扩散到大多数IDCT系数中对于有密钥的用户,您可以解密视频并获得原始视频。对于不知道密钥的用户,图像将不同于原始图像,有些图像将无法理解,因为图像的大部分像素值已经改变。

我们在基于XVID源代码的MPEG4-SP编码解码平台上模拟了该算法。在MPEG4-SPXVID源代码中,DC系数的编码是通过DC系数差分值的范围来确定尺度变长码,然后添加唯一标记差分值的附加码来确定编写在代码流中的代码:AC系数的代码是通过(RUN、LEVEL)扫描AC系数块,RUN表示O的数量,LEVEL表示当前的AC系数值,RUN、LEVEL找到相应的变长码,符号位通过AC系数的正负关系在变长码代码的最后一个标记O或1,0表示负。因此,我们在DCT系数量化后添加VEA算法,随机翻转非0值DC系数和AC系数的正负。同时,为了提高算法的安全性,增加加密图像的不可理解性,我们根据判断加密后第一块DC系数的正负关系,改变运动向量的符号,对每个块的第一行和第一列AC系数进行不同或操作,部分改变了原始AC系数值。加密效果如图4所示。从视觉效果来看,该算法可以很好地覆盖原始视频内容,左边是原始图像,右边是加密图像。

嵌入式视频数据库数据如何加密?

三、BerkeleyDB数据库的设计与实现

1.打开和使用数据库。

本系统的数据库引擎为BerkeleyDB。在系统初始化阶段,首先打开数据库,阅读数据库文件,并根据索引检查视频文件的完整性。BerkeleyDB使用键值/数据来区分数据库中的数据。键值/数据对是BerkeleyDB的基本组成部分。换句话说,调用数据库接口实际上提供了相应的键值,并通过键值找到要操作的数据。在BerkeleyDB中,所有键值/数据对都存储在一个叫做DBT的结构中。BerkeleyDB的库函数调用规则与面向对象的想法非常相似。打开数据库分为两个步骤。首先,调用DBcreate函数创建DB结构的句柄,然后使用open函数执行-打开数据库的操作。其函数接口为:

嵌入式视频数据库数据如何加密?

打开数据库后,可以添加记录。搜索记录并删除一个记录。

2.数据存储。

数据存储是视频数据库的中心任务。其主要职责是通过文件系统API将上层程序传输的视频数据存储到硬盘中,创建视频索引,方便用户检索。我们只能提取MPEG视频流的结构信息,并将其作为索引的一部分存储在BerkeleyDB数据库中。

当系统正常运行时,将创建两个后台保护过程:diskmonitors和diskwrite。

对于diskmonitor过程:用于定期检查硬盘状态,以确保当前写入数据的硬盘有足够的空间。o当通道unit空文件池中保留的句柄数小于最低阀值(通常为1)时,尝试从全球空文件池中获得可用的句柄。如果成功,diskmonitor将新创建的空文件添加到全球空文件池中。否则,说明全球空文件池中可用的句柄数为o,diskmonitor以oxfl:ffffff和unit为参数调用creatempty_file0创建空文件,直到句柄数恢复正常或硬盘剩余容量不足。diskwrite主要存储接收到的数据,流程如图5所示。

嵌入式视频数据库数据如何加密?

3、数据检索

提供灵活多样的数据检索服务是视频数据库的重要职能,也是视频数据库比一般的文件管理程序优越的根本原因。当用户申请数据检索时,查询处理进程根据具体的查询请求逐级检索文件索引、段索引和帧索引,定位到最符合条件的数据帧,返回该帧在文件内的偏移量。找到符合条件的视频文件后,根据应用需求和系统资源,就可以建立一条端对端的UDP或TCP连接,使远程用户能够在线播放或下载感兴趣的视频片断。查询处理进程还维护一份全局的用户连接表,并将所有操作以日志方式记录下来。

查找文件的函数接口为:int find_ file(struct STRU_FILE_QUERY*query, struct STR—FILE—RETURN*files, intmax_ num—re-turned)

根据传入的文件查询结构query中的参数进行文件级检索,符合条件的文件的相关信息放入查询结果结构files中返回,最大返回个数为 max num returned。