基于云模型的矢量地图版权保护算法

更新时间:2024-01-30 作者:用户投稿原创标记本站原创 点赞:26380 浏览:120082

摘 要 根据矢量地图的结构特点,本章给出了Shape格式的矢量地图版权保护算法的实现过程.该算法主要功能分为两个部分:其一对矢量地图访问的控制,这包括禁止对指定的矢量地图进行复制、移动、删除、重命名等一系列操作.其二是对矢量地图内容的保护,通过云模型和DWT两者相结合的保护方法有效的保护了矢量地图的原始数据,且提高了算法的不可见性及鲁棒性.

关 键 词矢量地图 版权保护算法 云模型

中图分类号:TP3 文献标识码:A

1矢量地图访问控制

Windows驱动模型是微软在开发Windows98所提出来的.微软将驱动模型分为两种:功能驱动和过滤驱动.功能驱动是指能够完成设备功能的内核模块模型.过滤驱动则是能够修改或者监视驱动功能的内核模块模型.

本算法的实现是在Windows Sfilter开源代码的基础上,通过对不同的派遣例程进行处理来达到对矢量地图的访问控制的目的.

1.1访问规则的设定

在文件过滤驱动的开发过程中,通过设定过滤规则来设定所要过滤的文件,这是在IRP的SfCreate派遣例程中实现的.本文中目标文件为Shape文件,过滤完成后通过对其进行DWT变换嵌入云滴水印.

一般来说,对Windows文件的操作,会按照如下几个步骤来进行.

(1)用户提出对某个文件的读/写操作,Windows系统将用户请求发给win32子系统;

(2)对传入到内层的读/写请求,Windows底层的I/O管理器将其转换成输入/输出请求包IRP;

(3)IRP内包含不同的派遣函数即Dispatch例程,每一个例程对应一个相应的操作;

(4)在IRP的Dispatch例程中,存在SfCreate函数.在该函数中对传入IRP中的路径和文件名进行判断,如果是所设定的路径且文件名后缀为.shp则将其进行标示,这就是下面将要进行处理的文件.

通过上述四个步骤,系统完成了过滤目标文件夹下.shp文件的功能.

1.2访问控制的实现

要实现对目标文件的访问控制(如对文件的复制、重命名、删除等),首先必须要知道所要控制的文件名、盘符及其路径.在文件过滤驱动中取得盘符和路径是分开的.取得盘符使用RtlVolumeDeviceToDosName (file->DeviceObject,&dosname);取得路径的方法是:

irpSp 等于 IoGetCurrentIrpStackLocation( Irp );

file 等于 irpSp->FileObject;

RtlCopyUnicodeString(&name,&file->FileName);

需要注意的是:在文件过滤驱动中,并非每个IRP中都有FileObject.在某些情况下,这个值是设置为NULL的,因此获得文件路径前必须做相应的判断.

(1)禁止文件复制的实现

判断在IRP_MJ_DIRECTORY_CONTROL中是否为所要禁止的目录,如果是则禁止复制操作.代码段如下:

Irp->IoStatus.Status 等于 STATUS_ACCESS_DENIED;

Irp->IoStatus.Information 等于 0;

status 等于 Irp->IoStatus.Status;

IoCompleteRequest(Irp, IO_NO_INCREMENT); //结束请求

(2)禁止文件删除的实现

在IRP_MJ_SET_INFORMATION中,判断 irpSp->Parameters.SetFile.FileInformationClass 是不是等于 FileDispositionInformation.如果是则执行如下的代码段.

PIO_STACK_LOCATION irpSp 等于 IoGetCurrentIrpStackLocation(Irp);

irpSp->Parameters.SetFile.FileInformationClass 等于等于 FileDispositionInformation

其他所要控制的操作如重命名、网络传输等的实现方式和上面两者类似.

2版权保护算法总体设计

矢量地图版权保护算法的总体设计分为两个部分:水印嵌入过程和水印提取过程.

水印的嵌入过程是矢量地图版权保护算法的核心部分,这个过程主要实现:根据用户输入的密钥产生相应的云滴水印,并将云滴水印嵌入到矢量地图中.水印的提取过程主要包括水印的提取和检测,在这个过程中不但要能够提取出原始水印并能够对提取出的水印进行判别检测,通过与原始水印信息进行对比来判断水印算法的优劣.这个过程是水印嵌入的逆过程.

2.1水印嵌入模型

矢量地图版权保护算法的一个重要过程就是水印的嵌入.水印的成功嵌入是保护原始矢量地图版权的基础.一个优秀的水印算法很大一部分内容是花费在嵌入过程中.按照水印判定的条件,水印的嵌入过程要保证水印的不可见性、鲁棒性及原始地图数据的精确性.为了最大程度的达到上述两个基本要求,本算法对矢量地图的数据格式及其云模型和DWT的相互作用进行了分析,提出了如下所示的算法.本算法水印嵌入模型主要包括四个步骤:版权信息的预处理;云滴水印的产生;嵌入位置的选择;云滴水印的嵌入,对数据进行IDWT变换生成新的矢量地图.


2.2水印提取模型

水印提取过程主要实现对嵌入水印的地图提取出原始水印并能够无损的还原原始地图,达到鉴定地图和还原原始数据的目的.水印的提取是嵌入的逆过程,并且能够实现水印的盲提取.

3小结

本章首先对矢量地图访问控制进行了介绍,矢量访问控制是保证矢量地图自我保护实现的关键.然后本章介绍了算法的嵌入模型和提取模型.