一种gis矢量数据文件访问控制方法

文档序号:6481582阅读:220来源:国知局
专利名称:一种gis矢量数据文件访问控制方法
技术领域
本发明涉及一种基于版权标记和文件过滤驱动的GIS矢量数据文件访问控制方法,属于 地理信息的版权保护技术。
背景技术
地理空间数据产品的易于复制与传播特点,以及Internet/Intranet的飞速发展为地理 空间数据共享提供的更为快捷的传播通道,使得地理空间数据产品的非法使用非常猖獗,严 重影响了地理空间数据产品巿场的健康、可持续发展。如何基于版权保护技术和立法来规范 地理空间数据产品市场、保障数据生产者的合法利益、证明数据的版权归属、促进共享应用 已成为地理信息安全与版权保护研究与应用的当务之急。生产成本高昂、精度高,与社会经 济发展和国防安全大局息息相关的地理信息系统(GIS)矢量数据产品,其版权保护问题更是 影响深远、意义重大,关乎到我国地理信息的共享、交换及其服务的社会化,影响着国家信 息安全建设以及地理信息系统、电子导航、数字城市、电子政务等地理信息相关产业的健康 发展。
GIS矢量数据表达方式、存储结构的多样性,以及无固定存储顺序、结构复杂、变换多 样、冗余少的特殊性,决定了难以简单地应用现有视频、音频等数字产品的版权保护技术来 进行GIS矢量数据产品的版权保护。针对GIS矢量数据产品的版权保护研究,目前主要集中 在两个方面 一是以数字水印为代表的版权标识技术;二是基于数字内容加密基础上的访问 控制技术。前者主要用于数字内容的版权标识,通过在载体数据中嵌入版权信息,为证明该 数据的版权归属提供法律依据;后者则主要用于数字内容保密和对非法用户的操作限制。基 于上述两种技术虽实现了一定的版权认证和访问控制,但由于两种技术的孤立使用,仍存在 着以下不足(1)单纯的版权标记技术主要应用于版权认证,而版权保护的最恰当方式应是 基于版权认证的基础上实现访问控制,从而能够实时制止非法用户侵权行为和合法用户越权 行为的发生;(2)基于GIS矢量数字内容加密基础上的访问控制方法,虽对非法用户的操作 进行了限制,但难于限制合法用户的越权操作,难于证明数字内容的版权归属和进行数字内 容的分发跟踪。并且,由于GIS矢量数据内容的加密,限制了教学用户的数据共享应用,限 制了用户对数据产品的试用和初步体验,且也会激发攻击者的好奇和注意。

发明内容
6本发明"一种GIS矢量数据文件访问控制方法"的目的在于提出了一种综合运用版权 标记技术和文件过滤驱动技术的GIS矢量数据文件访问控制方法。该方法一方面基于可逆水 印进行版权标记嵌入和提取,可有效证明数据的版权归属和支持数据无损还原,并可满足教 学用户和简单应用中的数据共享应用,满足用户对数据产品的试用和初步体验需要;另一方
面,基于文件系统过滤驱动技术进行GIS矢量数据文件的应用监控,可有效实现版权标记的 实时提取和检测,并支持进行数字内容的分发跟踪。
为迖到上述目的,本发明采用如下技术思路在发行GIS矢量数据产品时,通过可逆水 印算法在发行产品中嵌入过量的版权标记,有意降低数据精度。这样处理, 一方面直接下载 数据,就可在满足教学用户及普通用户数据共享应用的同时,由于数据精度降低而限制其对 数据的商业使用;另一方面,针对科研、商业等高端用户,通过安装基于过滤驱动技术的监 控程序,在数据应用时,透明方式实现实时的版权标记提取和数据恢复,从而实现实时版权 认证和获得无损的原始数据产品。此外,监控程序全程监控用户操作,可以限制合法用户的 越权操作。
本发明的方法包括GIS矢量数据文件的版权标记m嵌入、版权标记m提取和数捃恢复、 数据应用监控与访问控制三个技术环节。
所述版权标记m分为两种标志使用的版权标记和认证使用的版权标记;标志使用的版 权标记采用数字信息或笑文文本信息;认证使用的版权标记采用汉字文本信息或图像信息。
第一部分,GIS矢量数据文件的版权标记生成与嵌入
步骤一、根据要嵌入的版权标记m的类型生成相应的加密水印信息W;如果版权标记为 汉字文本信息,则可通过汉字内码转换、ASCII码转换、域值转换、加密处理对汉字文本信 息处理,生成二进制加密水印信息;如果版权标记为英文文本信息,则可通过ASCII码转换、 域值转换、加密处理进行信息处理,生成二进制加密水印信息;如果版权标记为数字信息, 则可通过域值转换、加密处理,生成二进制加密水印信息;如果是图像信息,则可以通过图 像压缩、基于Logistic映射的混沌置乱、除维处理、值域转化对图像信息处理,生成二进制 加密水印信息;
所述加密水印信息W分为标志使用的水印信息Wa (由标志使用的版权标记文本信息生 成的二进制加密水印信息,简称标志使用的水印)和认证使用的水印信息Wb (由认证使用的 版权标记的文本信息或图像信息生成的二进制加密水印信息,简称认证使用的水印);标志使 用的水印用于数据应用监控程序对空间数据文件进行类型检测,以确定是否为受版权保护的 文件类型;认证使用的水印用于对数据进行精度干扰和版权认证;步骤二、在GIS矢量数据文件地理要素坐标x坐标(简称x坐标)中嵌入加密水印信息 W;首先在GIS矢量数据文件地理要素坐标x坐标中嵌入标志使用的水印信息Wa,然后循环 嵌入认证使用的水印Wb;具体嵌入过程为
2.1、 读取GIS矢量数据文件中的地理坐标x坐标数据,由于地理坐标数据多为浮点数, 因此要将其放大10 1GW倍;
2.2、 将所述放大后的地理要素坐标x坐标数据按照读取先后顺序每两个分为一组后,提
取每组数据的整数部分并基于下式(1)进行运算,可得到差值序列Dx={《|iEN} (N是地 图所包含要素的顶点数的总和)和整数均值序列MxH《lieN),并将Dx转换为二进制格式;
_ 一 乂2
< =(xi' + x;)/2 (1)
2.3、 依据下式计算fi、 key(j)及《。其中,fi为变换标志位序列,根据其值用于确定该
载体数据《是基于差值扩大原理嵌入一位水印信息,还是基于LSB置换方法嵌入一位水印 信息;key(j)是水印提取的密钥,其值为《最低位(f产O);《为嵌入水印后的载体数据,
具体计算方法表明,对应,=1的《是由原始差值《右移一位并在低位添加一位水印信息得
到的。而对应/=()的《则是由水印数据直接替换《的最低位得到的;
乂 =1,当《〈阈值^*10"
,=0,当《 > 阈值r *iow
key(j):《-2*[《/2],当/ =0时,(j:l,2,…N)

(2)
、Wi分别是dx、 W(即:Wa或Wb)的元素,i=l,2……N 2.4、将上步计算结果《转换为十进制格式后,得到含水印差值序列为1^ ={《,《,…,
通过式(3)将《和^进行逆变换,加上原始数据的小数部分后并与步骤2.1对应缩小 相应倍数,可以得到含水印的横坐标数据;
82 "2」 (3)
基于上述步骤2. 1至2.4,首先嵌入一次标志使用的水印信息Wa,然后多次循环嵌入认 证使用的水印信息Wb,直至地理要素坐标x坐标数据所有分组中均嵌入认证使用的水印信息。
第二部分,GIS矢量数据的版权标记提取和数据恢复
依据水印嵌入顺序,基于差值扩大方法和LSB置换方法,首先在GIS矢量数据文件中提 取标志使用的水印信息Wa,然后提取认证使用的水印Wb,并在提取水印信息的同时恢复数据。 具体过程为
1) 读取待检测数据中的x坐标信息,并将x坐标放大10 10""倍;
2) 将x坐标两两分组变换,并提取每组数据的整数部分基于下式(4)进行运算,
3)
4)
5)
可得到差值序列""( D、转换为二进制格式;
《','
《"l和整数均值序列M^("^liGW,并将
^/j^ — JCj 工2
附丄=(《+《)/2 (4) 提取差值序列"、的最低比特位即得到隐藏的加密水印信息W (即Wa或Wb)。 依据下式(5)及D、计算fi及《,并转换为十进制格式后,得到原始差值序列 D" = {《|iEN} (N是地图所包含要素的顶点数的总和);
f产l,当《〈阔值r"O"
fi=0,当《 > 阈值r *io"
W/2」 乂=1
《=2xL《'/2j + feK/) 乂=0 (5)
原始差值序列^结合整数均值序列^1《,即可通过式(6)可逆整数变换完全恢 复原始数据的整数据部分,加上原始数据的小数部分后并与步骤1)中对应缩小
9相应倍数,可以得到原始横坐标数据。
4=附-[,] (6) 第三部分,GIS矢量数据文件的应用监控与访问控制
1) 当一个用户要对文件进行读操作时,系统首先将应用程序的请求通过Win32 API 调用发给Win32子系统;
2) Win32子系统将通过系统服务接口,将该命令传给内核层的I/O管理器。在I/O 管理器里,该命令被构造成I/O请求包(IRP),并送到设备系统驱动程序的入口点;
3) 本发明中将GIS矢量数据文件监控过滤驱动程序安放在整个I/O管理器驱动栈的 最顶层,当设备驱动将此IRP依次向下传送并执行时,首先会遇到被安插在其中 的文件过滤驱动程序,将这个请求包IRP拦截下来,并基于第二部分所述版权标 记提取与数据还原算法,分析获取其携带的标志使用的水印信息Wa;
4) 根据标志使用的水印提取结果与用户输入密钥情况,选择进行以下处理
a) 若未提取出标志使用的水印,则向下层驱动程序传递并处理IRP,完成正常数 据操作;
b) 若发现是受版权保护的含水印数提,则系统会向用户索取水印密钥。等待用 户正确输入密钥后,访问控制系统将在内核态基于第二部分所述版权标记提 取与数据还原算法对数据进行实时水印提取和数据还原。等各层驱动程序传 递并处理IRP,完成后向用户态提交数据使用,并激活各类监控程序,继续执 行步骤5),开始对用户的操作进行监控;
c) 若发现是受版权保护的含水印数据,但用户输入错误的密钥信息,则中止该 操作,从而控制非法用户的使用;
5) 监控到用户越权操作时,将限制相应操作。具体包括空间数据复制与另存操作、 打印操作等操作类型。


图l赣榆县矢量数据
图2访问控制系统的体系结构图
图3文件过滤驱动工作流程4访问控制实时监控用户搡作效果截图
图5访问控制系统对空间数据操作的监控流程
图6打印控制系统结构图
图7访问控制打印控制效果截图
具体实施例方式
对于高级授权用户,同时分发一个与数据绑定的访问控制系统和数据嵌入时形成的密钥 key。授权用户要使用精确数据时,向访问控制系统提交密钥key。访问控制系统通过内置的 水印提取与数据还原模块,将认证使用的水印从空间数据文件中提取出来的同时还原数据, 并开始对文件操作进行跟踪和记录。用户即可以使用到完全精确的数据。
对于非正式注册用户,空间数据文件依然是开放使用的,但是不提供相应的访问控制模 块,即不提供相应的水印提取与数据还原功能,保持数据精度始终是受扰动状态,不适合进 行工业或商业使用。
下面结合附图并通过描述一个针对高级用户典型的GIS矢量数据产品版权标记嵌入、产 品发行及访问控制应用过程,给出本发明的一个实施例,并进一步说明本发明的效果。本实 例选择赣榆县矢量数据做为实验数据(图l所示),数据格式为shp,比例尺为l: 400万,面 图层,包含顶点数2602个。数据精度精确到小数点后12位,地理坐标数据精度由秒级降低 为度级,在橫坐标中嵌入水印数据。阈值r为0.003,认证使用的版权标记为"南京师范大学 地理科学学院"汉字文本信息。
实施例1:
步骤一版权标记生成。GIS矢量数据产品发行时,根据要嵌入的版权信息m生成相应 的水印信息w。此处以"南京师范大学地理科学学院"汉字文本信息为认证使用的水印,汉 字内码转换、ASCII码转换、域值转换等对汉字文本信息处理,生成如下二进制水印信息
000100110110……;标志使用的水印Wa信息为数字信息"20090420",经处理后其二进制水 印序列为11100000000010010000010000100000
步骤二版权标记嵌入。依据容量要求,依次嵌入标记水印、版权水印。具体方法为 (l)顶点分组读取数据文件中点要素的x坐标数据,并按照读取先后顺序每两个分为 一组。这里,(vl,v2,v3,v4, ' }中,如:vl=119. 19627380363 ; v2=119. 19792175292; v3=119. 191478149532; v4=l 19. 210927734277。将顶点按照先后顺序,每相邻两点作为一组, 如上则该元素的顶点被划分为K vl,v2), (v3,v4), }。对原始数据中所有点元素都采用
11上述方法进行分组,则原始数据中绝大多数相邻顶点都两两组合为"顶点对"。 (2)水印嵌入。具体过程为
1) 由于地理坐标数据多为浮点数,因此要将其放大io i^倍,并进一步分为整数部分
和小数部分。本示例中将其放大1000倍,如原始数据为vl=119. 19627380363; v2=119, 19792175292 ; v3=l 19. 191478149532 ; v4=l 19. 210927734277 。其处理结果为 vl=119196,vlf=0. 27380363; v2=119197,v2f=0. 92175292 ; v3=119191,v3f=0.478149532 ; v4=l19210,v4f=0. 927734277。
2) 将坐标两两分组变换,基于整数部分运算得到差值序列Dx和整数均值序列Mx,将Dx 转换为二进制格式,并通过阔值r与Dx的关系计算标志序列flag,选择适宜的方法来嵌入水 印信息。这里由于原始数据扩大IOOO倍,r同步扩大IOOO倍后为3。这里D1-1《,则表明 该坐标对相关性较好,适宜进行差值扩大法嵌入水印,flag^; D2=19〉r,则表示该坐标对不 适宜进行差值扩大嵌入,改用替换最不明显位方法嵌入水印,并把该位被置换数据存入 key(l)。具体计算过程如下
Dl=v2-vl=l
D2=v4-v3-10011
Ml=(vl+v2)/2=l19196
M2= (v3+v4)/2=l19200
Key(l):l
Dl, = ll
D2, =10011
3) 将D、和M^通过可逆整数变换进行逆变换,加上原始数据的小数部分后并缩小为1000 倍,可得到含水印的横坐标数据。具体变换过程如下Vl= Ml+(Dl,+l)/2+vlf= 119198.27380363; V2= Ml-Dl,/2+v2f=l 19195.92175292; V3= M2+(D2,+l)/2+v3f=119210. 478149532; V4= M2-D2,/2+v4f=l 19191.927734277;再将数据分别除以1000,得到嵌入水印 的最终坐标值Vl-119.19827380363; V2= =119.19592175292; V3=l 19.210478149532; V4-119.191927734277
基于本步骤中的上述水印嵌入过程,首先嵌入一次标志使用的水印信息"20090420",然 后多次循环嵌入认证使用的水印信息"南京师范大学地理科学学院",直至数据所有分组中均 嵌入水印信息。
12步骤三监控程序安装当使用数据时,基于数据发行盘中的安装程序,安装数据应用 监控程序。基于文件过滤驱动技术的监控系统,部署在用户的操作系统中(图2所示),分为 两大部分且分别处于操作系统中的应用层和内核层。处于内核层的模块都以文件过滤驱动技 术研发。
步骤四数据读搡作实时监控。当一个用户要对文件进行读操作时(图3所示),系统首 先将应用程序的请求通过Win32 API调用发给win32子系统。子系统将通过系统服务接口 , 将该命令传给内核层的I/0管理器。在I/0管理器里,该命令被构造成主功能为IRPJ1J—CREATE 的1/0请求包(IRP),并送到设备系统驱动程序的入口点。设备驱动将此IRP依次向下传送并 执行,等各层驱动程序传递并处理IRP,最后从硬件层读出数据,将结果通过I/0管理器返回 用户进程。
将文件过滤驱动被安插在其中,将这个请求包IRP拦截下来,并分析获取其携带的信息。 就可以全面的实现对用户文件操作的监控。这里我们将驱动程序安放在整个I/O管理器驱动 栈的最顶层,这样当GIS应用程序发出了对文件操作的指令后,WIN32子系统将通过系统服 务接口传送给I/0管理器,1/0管理器将其翻译成IRP指令,首先将被我们设置的过滤驱动 得到并分析。基于差值扩大方法的提取算法对数据进行标志使用的水印提取。本实例中检测 得到字符串为"20090420"的文本检测水印,则确定是版权受保护数据,驱动程序首先分祈 操作是否合法并将操作记录成日志。在前台,该系统将列出用户对文件操作信息,包括时间、 操作方式、该操作所处的进程、是否成功等。如编号1;时间15:00:50;进程 ArcMap. exe. 1528;请求IRP—MJ—CREATE;路径D:\data\cnty.shp;结果SUCCESS等。掌 握了这些信息,驱动程序就可以对用户的行为进行判断和决策,包括允许打开,或者阻止读 写等等(图4所示)。
具体标志使用的水印提取与数据还原过程如下
1) 读取原始数据中的坐标信息。
2) 将坐标放大1000倍,两两分组并将其变为整数部分和小数部分。这里得到四个 点Vl= 119. 19827380363; V2= 119. 19592175292; V3= 119. 210478149532; V4= 119.191 927734277 。将点坐标扩大1000倍,得Vl=l 19198.27380363; V2=119195.92 175292; V3=119210. 478149532; V4= 119191.927734277。再将 整数部分与小数部分分开:Vl=119198,vlf=0. 27380363 ; V2=119195, v2f=0. 92175292; V3=119210,v3f=0. 478149532; V4=l19191,v4f= 0.927734277。
3) 通过式(4)可逆整数变换,计算得到"、和il^,并将D'x转换为二进制格式,提取差值序列"^的最低比特位即得到隐藏的水印序列W (即Wa或恥)。具体 过程如下先通过式(4)得到Dl=ll、 Ml=119196; D2:薩l、 M1=U9200;然
后提取差值序列",'的最低比特位可得到前两位水印信息"11"。
4) 通过式(5)计算fi及《,并转换为十进制格式后,得到原始差值序列"、原 始差值序列A结合整数均值序列M、即可通过式(6)可逆整数变换完全恢复 原始数据的整数据部分,加上原始数据的小数部分后并与步骤2)中对应缩小相 应倍数,可以得到原始横坐标数据。具体过程如下利用实时判别出的flag值
和从用户处得到的水印密钥key,还原得到原始差值序列A。第一对数据的 flag=l ,则Dl'是通过差值扩大方法嵌入水印的,提取出最后一位再右移一次即 可;第二对数据的flagO,则D2'是使用替换最不显著位法嵌入水印的,将其最 第低位用key (1)进行替换,得到Dl=l 、 D2,=10011。数据计算结果为 Vl=Ml+(Dl,+l)/2+vlf=119. l恥27380363; V2=M1-Dl,/2+v2f= 119.19792175292; V3=M2+(D2,+l)/2+v3f=119. 191478149532 ; V4=M2-D2,/2+v4f=
119.210927734277。
5) 再计算得到的坐标数据存储回文件流中。最后返回上层驱动程将提取出水印的精
确数据返回给 用户。
步骤五版权标记提取和数据恢复。监控到GIS矢量数据指定类型的数据读写操作时, 根据读搡作访问控制策略,用户要使用数据,则访问控制系统会在内核层对数据进行检测。 若发现是受版权保护的含水印数据,则系统会向用户索取水印密钥。用户输入密钥key后, 访问控制系统将在内核态对数据进行实时水印提取。完成后向用户态提交数据使用,并开始 对用户的操作进行监控。
本处理过程中获得空间数据的位置和内容、进行水印提取和原始数据恢复为两个关键环 节。其中,水印提取和原始数据恢复过程与标志使用的水印提取过程一致。获得空间数据的 位置和内容具体处理流程如下(图5所示)首先将读取的内容从内存块com-〉MyBuffer拷贝 至Irp-〉01dBuffer。此时Irp-〉01dBuffer中以二进制流的形式存储着原空间数据。依照该 空间数据文件的格式(此处以shp文件为例),依次将二进制流中的数据读出并存入预定义的 缓存中。如,若原水印嵌入在POLYLINE类型的几何要素的坐标中。POLYLINE的shp类型值为8,则首先在二进制流中寻找到存储POLYLINE的位置。找到后,分别根据这个几何要素的 Parts数和Points数计算出该要素的坐标点在二进制流中的位置。例如,Parts=2,Points=4, 则该要素由两个部分组成,每个部分有4个点,共8个x坐标和8个y坐标。由于空间数据 坐标的小数部分位数较多,需要用double型的变量进行存储。找到坐标后,将坐标分别乘以 一个整数如102、 108、 1010等,以便将其转化为正整数。这才可以使用整数小波变换进行坐 标变换。将坐标转为整数后,将其进行整数小波变换,得到差值序列。
步骤六高精度数据应用监控恢复后的数据可基于数据授权文件供用户进行正常操作 应用,当检测到用户越权操作时,将限制相应搡作。具体包括
(1) 空间数据复制与另存操作控制。根据复制与另存访问控制策略,如果发现用户要复 制或者另存数据,访问控制系统会予以警告。如果用户执意要执行,则过滤驱动将拦截下该 IRP并对其做修改,按原方式再次嵌入水印。嵌入后将数据存于硬盘。
(2) 打印控制。打印控制使用钩子(H00K)技术实现,并集成到文件过滤驱动程序中。 当用户要打印空间数据文件时, 一定会首先激活地理信息软件进程中的打印线程,打印动作 发生后会产生相应的消息,通常这些消息会被搡作系统直接发送到相应的应用系统来处理。
"钩子"机制就是在消息发到应用程序之前先拦截到它,交给钩子处理程序,消息处理完毕 后再由操作系统发给原来的应用程序,即消息"被钩子拦截并处理"应用程序,有些类似中 断处理,这样就可以实现打印的监控。通过拦截相应的打印函数,并在其中安插事先编写的 处理函数,就可以在打印的结果中加入版权标识。体系结构如图6所示,打印成PDF的效果 如图7所示。
步骤七数据应用跟踪。若用户上网,访问控制系统将实时通过网络将用户对数据的操 作情况通过网络反馈给授权方。访问控制系统中的网络信息传输功能采用web service技术 实现。基于web service技术的网络信息传输模块的Client端,嵌入在访问控制系统的应用 层程序中。当接收到监控模块发来的信息后,网络传输模块开始工作。首先收集本机信息, 包括IP地址,对文件搡作的类型。然后将数据封包,如果用户正连接在网上,则开始向服务 端(Client)发送数据。服务端始终处于等待状态,接收客户端发送来的信息。本实例中, 用户IP地址132.1.204.3;使用文件时间2009-4-20 20:15:21;文件名cnty. shp;操 作类型0PEN;密钥:111101000110111000......。
本发明技术方案和实施例1中仅在横坐标数据中嵌入水印信息,可以选择在纵坐标数据 中嵌入水印信息,也可以选择在横坐标数据和纵坐标数据中同时嵌入水印信息,其嵌入方法 与横坐标数据中嵌入方法相同。
权利要求
1、一种GIS矢量数据文件访问控制方法,包括GIS矢量数据文件的版权标记m嵌入、版权标记m提取和数据恢复、数据应用监控与访问控制三个技术环节;所述版权标记m分为两种标志使用的版权标记和认证使用的版权标记;标志使用的版权标记采用数字信息或英文文本信息;认证使用的版权标记采用汉字文本信息或图像信息;第一技术环节,GIS矢量数据文件的版权标记生成与嵌入步骤一、根据要嵌入的版权标记m的类型生成相应的加密水印信息W;所述加密水印信息W分为标志使用的水印信息Wa和认证使用的水印信息Wb;如果版权标记为汉字文本信息,则通过汉字内码转换、ASCII码转换、域值转换、加密处理对汉字文本信息处理,生成二进制加密水印信息;如果版权标记为英文文本信息,则通过ASCII码转换、域值转换、加密处理进行信息处理,生成二进制加密水印信息;如果版权标记为数字信息,则通过域值转换、加密处理,生成二进制加密水印信息;如果是图像信息,则通过图像压缩、基于Logistic映射的混沌置乱、除维处理、值域转化对图像信息处理,生成二进制加密水印信息;步骤二、在GIS矢量数据文件地理要素坐标x坐标中嵌入加密水印信息W;首先在GIS矢量数据文件地理要素坐标x坐标中嵌入标志使用的水印信息Wa,然后循环嵌入认证使用的水印信息Wb;具体嵌入过程为2.1、读取GIS矢量数据文件中的地理要素坐标x坐标数据并将其放大10~10N倍;2.2、将所述放大后的地理要素坐标x坐标数据按照读取先后顺序每两个分为一组,并提取每组数据的整数部分计算差值序列<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mi>Dx</mi><mo>=</mo><mo>{</mo><msubsup> <mi>d</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>|</mo><mi>i</mi><mo>&Element;</mo><mi>N</mi><mo>}</mo> </mrow>]]></math> id="icf0001" file="A2009100279360002C1.tif" wi="25" he="6" top= "173" left = "88" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>和整数均值序列<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mi>Mx</mi><mo>=</mo><mo>{</mo><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>|</mo><mi>i</mi><mo>&Element;</mo><mi>N</mi><mo>}</mo><mo>,</mo> </mrow>]]></math> id="icf0002" file="A2009100279360002C2.tif" wi="28" he="6" top= "173" left = "145" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>并将Dx转换为二进制格式<maths id="math0003" num="0003" ><math><![CDATA[ <mrow><msubsup> <mi>d</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>=</mo><msubsup> <mi>x</mi> <mn>1</mn> <mi>i</mi></msubsup><mo>-</mo><msubsup> <mi>x</mi> <mn>2</mn> <mi>i</mi></msubsup> </mrow>]]></math></maths><maths id="math0004" num="0004" ><math><![CDATA[ <mrow><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>=</mo><mrow> <mo>(</mo> <msubsup><mi>x</mi><mn>1</mn><mi>i</mi> </msubsup> <mo>+</mo> <msubsup><mi>x</mi><mn>2</mn><mi>i</mi> </msubsup> <mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>2.3、计算fi、key(j)及dxi′,其中,fi为变换标志位序列,根据其值用于确定该载体数据dxi是基于差值扩大原理嵌入一位水印信息,还是基于LSB置换方法嵌入一位水印信息;key(j)是水印提取的密钥,其值为dxi最低位(fi=0);dxi′为嵌入水印后的载体数据,具体计算方法表明,对应fi=1的dxi′是由原始差值dxi右移一位并在低位添加一位水印信息得到的;而对应fi=0的dxi′则是由水印数据直接替换dxi的最低位得到的;fi=1,当 id="icf0005" file="A2009100279360003C1.tif" wi="30" he="5" top= "28" left = "67" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>fi=0,当 id="icf0006" file="A2009100279360003C2.tif" wi="30" he="5" top= "39" left = "67" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/><maths id="math0005" num="0005" ><math><![CDATA[ <mrow><mi>key</mi><mrow> <mo>(</mo> <mi>j</mi> <mo>)</mo></mrow><mo>=</mo><msubsup> <mi>d</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>-</mo><mn>2</mn><mo>*</mo><mo>[</mo><msubsup> <mi>d</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>/</mo><mn>2</mn><mo>]</mo><mo>,</mo> </mrow>]]></math> id="icf0007" file="A2009100279360003C3.tif" wi="41" he="6" top= "49" left = "48" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>当fi=0时,(j=1,2,…N)<maths id="math0006" num="0006" ><math><![CDATA[ <mrow><msubsup> <mi>d</mi> <mi>x</mi> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>=</mo><mn>2</mn><mo>&times;</mo><msubsup> <mi>d</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>+</mo><msub> <mi>w</mi> <mi>i</mi></msub> </mrow>]]></math> id="icf0008" file="A2009100279360003C4.tif" wi="29" he="5" top= "60" left = "48" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>fi=1 id="icf0009" file="A2009100279360003C5.tif" wi="40" he="7" top= "68" left = "48" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>fi=0(2)dxi、wi分别是dx、W(即Wa或Wb)的元素,i=1,2……N;2.4、将上步计算结果dxi′转换为十进制格式后,得到含水印差值序列为<maths id="math0007" num="0007" ><math><![CDATA[ <mrow><msub> <msup><mi>D</mi><mo>&prime;</mo> </msup> <mi>x</mi></msub><mo>=</mo><mo>{</mo><msubsup> <mi>d</mi> <mi>x</mi> <msup><mn>1</mn><mo>&prime;</mo> </msup></msubsup><mo>,</mo><msubsup> <mi>d</mi> <mi>x</mi> <msup><mn>2</mn><mo>&prime;</mo> </msup></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup> <mi>d</mi> <mi>x</mi> <msup><mi>N</mi><mo>&prime;</mo> </msup></msubsup><mo>}</mo><mo>;</mo> </mrow>]]></math> id="icf0010" file="A2009100279360003C6.tif" wi="34" he="6" top= "91" left = "154" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>通过式(3)将dxi′和mxi进行逆变换,加上原始数据的小数部分后并与步骤2.1对应缩小相应倍数,可以得到含水印的横坐标数据<maths id="math0008" num="0008" ><math><![CDATA[ <mrow><msubsup> <mi>x</mi> <mn>1</mn> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>=</mo><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>+</mo><mo>[</mo><mfrac> <mrow><msubsup> <mi>d</mi> <mi>x</mi> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>+</mo><mn>1</mn> </mrow> <mn>2</mn></mfrac><mo>]</mo> </mrow>]]></math></maths><maths id="math0009" num="0009" ><math><![CDATA[ <mrow><msubsup> <mi>x</mi> <mn>2</mn> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>=</mo><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>-</mo><mo>[</mo><mfrac> <msubsup><mi>d</mi><mi>x</mi><msup> <mi>i</mi> <mo>&prime;</mo></msup> </msubsup> <mn>2</mn></mfrac><mo>]</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>基于上述步骤2.1至2.4,首先嵌入一次标志使用的水印信息Wa,然后多次循环嵌入认证使用的水印信息Wb,直至地理要素坐标x坐标数据所有分组中均嵌入认证使用的水印信息;第二技术环节,GIS矢量数据的版权标记提取和数据恢复依据水印嵌入顺序,基于差值扩大方法和LSB置换方法,首先在GIS矢量数据文件中提取标志使用的水印信息Wa,然后提取认证使用的水印Wb,并在提取水印信息的同时恢复数据;具体提取过程为1)读取待检测数据中的x坐标信息,并将x坐标放大10~10N倍;2)将x坐标两两分组变换,并提取每组数据的整数部分基于下式(4)进行运算,可得到差值序列<maths id="math0010" num="0010" ><math><![CDATA[ <mrow><msub> <msup><mi>D</mi><mo>&prime;</mo> </msup> <mi>x</mi></msub><mo>=</mo><mo>{</mo><msubsup> <mi>d</mi> <mi>x</mi> <msup><mn>1</mn><mo>&prime;</mo> </msup></msubsup><mo>,</mo><msubsup> <mi>d</mi> <mi>x</mi> <msup><mn>2</mn><mo>&prime;</mo> </msup></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup> <mi>d</mi> <mi>x</mi> <msup><mi>N</mi><mo>&prime;</mo> </msup></msubsup><mo>}</mo> </mrow>]]></math> id="icf0013" file="A2009100279360003C10.tif" wi="44" he="6" top= "225" left = "74" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>和整数均值序列<maths id="math0011" num="0011" ><math><![CDATA[ <mrow><msub> <mi>M</mi> <mi>x</mi></msub><mo>=</mo><mo>{</mo><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>|</mo><mi>i</mi><mo>&Element;</mo><mi>N</mi><mo>}</mo><mo>,</mo> </mrow>]]></math> id="icf0014" file="A2009100279360003C11.tif" wi="28" he="6" top= "225" left = "148" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>并将D′x转换为二进制格式;<maths id="math0012" num="0012" ><math><![CDATA[ <mrow><msubsup> <mi>d</mi> <mi>x</mi> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>=</mo><msubsup> <mi>x</mi> <mn>1</mn> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>-</mo><msubsup> <mi>x</mi> <mn>2</mn> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup> </mrow>]]></math></maths><maths id="math0013" num="0013" ><math><![CDATA[ <mrow><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>=</mo><mrow> <mo>(</mo> <msubsup><mi>x</mi><mn>1</mn><msup> <mi>i</mi> <mo>&prime;</mo></msup> </msubsup> <mo>+</mo> <msubsup><mi>x</mi><mn>2</mn><msup> <mi>i</mi> <mo>&prime;</mo></msup> </msubsup> <mo>)</mo></mrow><mo>/</mo><mn>2</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>3)提取差值序列D′x的最低比特位即得到隐藏的加密水印信息W(即Wa或Wb);4)依据下式(5)及D′x计算fi及dxi,并转换为十进制格式后,得到原始差值序列<maths id="math0014" num="0014" ><math><![CDATA[ <mrow><msub> <mi>D</mi> <mi>x</mi></msub><mo>=</mo><mo>{</mo><msubsup> <mi>d</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>|</mo><mi>i</mi><mo>&Element;</mo><mi>N</mi><mo>}</mo> </mrow>]]></math> id="icf0017" file="A2009100279360004C1.tif" wi="25" he="6" top= "49" left = "38" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>(N是地图所包含要素的顶点数的总和)fi=1,当 id="icf0018" file="A2009100279360004C2.tif" wi="30" he="6" top= "59" left = "81" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>fi=0,当 id="icf0019" file="A2009100279360004C3.tif" wi="30" he="5" top= "70" left = "81" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/> id="icf0020" file="A2009100279360004C4.tif" wi="20" he="6" top= "81" left = "66" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>fi=1 id="icf0021" file="A2009100279360004C5.tif" wi="39" he="6" top= "89" left = "66" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>fi=0;(5)5)原始差值序列Dx结合整数均值序列Mx,即通过式(6)可逆整数变换完全恢复原始数据的整数据部分,加上原始数据的小数部分后并与步骤1)中对应缩小相应倍数,可以得到原始横坐标数据。<maths id="math0015" num="0015" ><math><![CDATA[ <mrow><msubsup> <mi>x</mi> <mn>1</mn> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>=</mo><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>+</mo><mo>[</mo><mfrac> <mrow><msubsup> <mi>d</mi> <mi>x</mi> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>+</mo><mn>1</mn> </mrow> <mn>2</mn></mfrac><mo>]</mo> </mrow>]]></math></maths><maths id="math0016" num="0016" ><math><![CDATA[ <mrow><msubsup> <mi>x</mi> <mn>2</mn> <msup><mi>i</mi><mo>&prime;</mo> </msup></msubsup><mo>=</mo><msubsup> <mi>m</mi> <mi>x</mi> <mi>i</mi></msubsup><mo>-</mo><mo>[</mo><mfrac> <msubsup><mi>d</mi><mi>x</mi><msup> <mi>i</mi> <mo>&prime;</mo></msup> </msubsup> <mn>2</mn></mfrac><mo>]</mo><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>第三技术环节,GIS矢量数据文件的应用监控与访问控制1)当一个用户要对文件进行读操作时,系统首先将应用程序的请求通过win32 API调用发给win32子系统;2)win32子系统将通过系统服务接口,将该命令传给内核层的I/O管理器;在I/O管理器里,该命令被构造成I/O请求包IRP,并送到设备系统驱动程序的入口点;3)将GIS矢量数据文件监控过滤驱动程序安放在整个I/O管理器驱动栈的最顶层,当设备驱动将此IRP依次向下传送并执行时,首先会遇到被安插在其中的文件过滤驱动程序,将这个请求包IRP拦截下来,并基于第二技术环节所述版权标记提取与数据还原算法,分析获取其携带的标志使用的水印信息Wa;4)根据标志使用的水印提取结果与用户输入密钥情况,选择进行以下处理a)若未提取出标志使用的水印,则向下层驱动程序传递并处理IRP,完成正常数据操作;b)若发现是受版权保护的含水印数据,则系统会向用户索取水印密钥;等待用户正确输入密钥后,访问控制系统将在内核态基于第二技术环节所述版权标记提取与数据还原算法对数据进行实时水印提取和数据还原;等各层驱动程序传递并处理IRP,完成后向用户态提交数据使用,并激活各类监控程序,继续执行步骤5),开始对用户的操作进行监控;c)若发现是受版权保护的含水印数据,但用户输入错误的密钥信息,则中止该操作,从而控制非法用户的使用;5)监控到用户越权操作时,将限制相应操作。
全文摘要
本发明公开了一种GIS矢量数据文件访问控制方法,包括GIS矢量数据文件的版权标记m嵌入、版权标记m提取和数据恢复、数据应用监控与访问控制三个技术环节;版权标记m分为标志使用的版权标记和认证使用的版权标记。在发行GIS矢量数据产品时,通过可逆水印算法在发行产品中嵌入过量的版权标记,有意降低数据精度。直接下载数据,可在满足教学用户及普通用户数据共享应用的同时,由于数据精度降低而限制其对数据的商业使用。针对科研、商业等高端用户,通过安装基于过滤驱动技术的监控程序,在数据应用时,透明方式实现实时的版权标记提取和数据恢复,从而实现实时版权认证和获得无损的原始数据产品,并限制合法用户的越权操作。
文档编号G06F17/22GK101556578SQ20091002793
公开日2009年10月14日 申请日期2009年5月12日 优先权日2009年5月12日
发明者李安波, 闾国年, 竹 顾 申请人:南京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1