一种shp线面图层数据层次加解密方法技术

技术编号:8533375 阅读:260 留言:0更新日期:2013-04-04 16:42
本发明专利技术公开了一种shp线面图层数据层次加解密方法,包括如下过程:(1)针对线面图层数据的逐级加密及存储过程,包括各级密钥的生成、单调性分段、建立LOD模型、逐级加密及分级存储等步骤;(2)针对线面图层数据的逐级解密及显示过程,包括解密密钥生成、逐级解密、层次显示等步骤。本发明专利技术的方法能有效兼顾矢量数据传输的速度和安全性,为海量地理空间数据的高效传输和安全访问提供有效的技术手段。

【技术实现步骤摘要】

本专利技术公开了一种可用于渐进传输和数据安全分级调度的Shp线面图层数据层次加解密方法,能够实现地理信息系统领域Gis矢量数据的高效快速传输和安全访问。
技术介绍
GIS矢量数据因其具有高精度、海量、易存储、自动化处理以及无损缩放等传统纸质地图无法比拟的优点,应用范围极其广泛。然而,数字化存储的GIS矢量数据极易被篡改,造成严重后果。为此,需要寻找一种海量数据高效传输、安全访问的技术和方法,而混沌序列密码技术和LOD技术的集成,为这一问题的解决提供了可能。 序列密码具有实现简单、便于硬件实施、加解密速度快、低错误传播等优点,在数据的安全传输与存储中有着广泛的应用。LOD技术即层次细节技术,根据要素的重要程度将不同比例尺地图中的要素图层划分为不同的显示级,可实现海量地图的多尺度显示。
技术实现思路
本专利技术的目的在于基于混沌序列密码技术、LOD技术及GIS矢量数据特点,提出了一种针对shp线面图层数据的层次加解密技术,从而能有效兼顾矢量数据传输的速度和安全性,为海量地理空间数据的高效传输和安全访问提供有效的技术手段。为了实现上述目的,本专利技术采取的技术方案,包括如下过程(—)针对线面图层数据的逐级加密及存储过程步骤11 :利用Hash函数的单向性构造具有分级的密钥链,将得到的各级hash值用来生成Logistic混沌系统的控制参数μ、初始值Xtl和初始迭代次数N,再使用不同级别的密钥加密不同等级的资源,从而实现矢量数据的分级调度;各级密钥生成的具体方法如下a)输入密钥key或选择密钥文件keyfile ;b)利用Hash函数SHA-256算法对输入密钥文件进行处理,得到长度为256位的hash值H,输入用户需求的分级数I,根据公式(I)推导生成各级别hash值H1 ;Hw=Hash(H1),1=1,2,3. · · (I)c)将各级别H1以字节为单位分为32组,每组的取值范围为0-255,将这32组数据用于生成各级别Logistic映射的控制参数μ :、初始迭代次数N1和初始值Xcil ;d)根据公式(2) Logistic方程,输入密钥[μ !, X01],对各级密钥进行初始迭代N1次,以扩大Logistic映射的雪崩效应;λγη+1 = μ *χη-μ *xlC2)步骤12 :选择要加密的线面图层数据R,获取线面图层数据R的相关信息图层所含线要素个数IineNum、线要素编号linelD、线要素所含点个数pointNum、点要素坐标信息pX、pY、图层坐标范围 Xmin、Xfflax, Yfflin 和 Ymax ;步骤13 :判断每个线对象的单调性,记录单调性的转折点,并以转折点为断点,拆分成两个线对象,再继续判断转折点到末点的单调性,直到所有线对象满足单调;分析线对象的单调性以X轴为投影直线,对于有η点的折线L,若用Xj表示第j点的横坐标,若公式(3)成立,则定义第j点是L的单调点;否则,为非单调点; (Xj-Xj^1) (XJ+1-Xj)>0 (KjXn) (3)定义当一条折线上的所有点满足公式(3)时,则称其为沿X轴单调的折线;否则,不是沿X轴单调的折线;假设按公式(3)所判别的折线上的非单调点个数为M,则它们可将折线分为M+1个单调子段;步骤14 :利用道格拉斯-普克算法建立线状要素LOD模型,对线面图层数据R进行分级即是对线面图层数据R中的实体要素进行分级,具体方法如下用户设置各个要素级别的分级阈值T1,对线面图层数据R分级,得到R=IR111=0,I, 2,…},R1表示第I个级别的要素组,其中,R1是内容互不重复的要素组,避免数据存储冗余;步骤15 :针对线面图层数据R进行逐级加密,具体方法如下a)设置指针指向图层的第一个要素的第一个点;b)判断当前点的级别,选择对应级别密钥进行加密运算;c)对混沌序列进行一次迭代,得到值xpl,Xpl表示对第I级别的初始值Xtll经过初始迭代N1次后再迭代P次后的值,并将其放大m倍,得到keyx,根据公式(4)用keyx对点的横坐标pX的整数部分Px进行异或操作,得到异或后的点坐标P' x,对于点的纵坐标pY的整数部分Py,处理过程相同,得到V y;p' x=px Λ keyx (4)p' y=py Λ keyy其中,为了避免加密地图的分块现象,出现周期性,合理选择m的值以保证参与坐标异或运算的keyx尽量在地图坐标范围之外。d)对得到的新坐标进行判断,是否超出图层坐标取值范围如果转换后的点的横坐标V !£在[Xmin,Xmax]范围内,则不做任何处理;如果转换后的点的横坐标P' x〈Xmin,或者p' x>Xmax,则将其还原为原始坐标值,即P' x=Px°对于转换后的纵坐标的整数部分p' y,处理过程与横坐标P' x的过程相同。e)将新坐标值赋值给点对象,将点对象添加到对应线对象中;f)若指针指向图层最后一个要素的最后一个点,则算法结束;若指针指向某一个要素的最后一个点,则指针指向下一个要素的第一个点,并跳回到步骤b);否则指针指向下一个点,算法回跳到步骤b);步骤16 :加密图层Re的分级存储,具体方法如下将矢量数据存储到关系数据库中,关键是将地理要素集映射到关系数据库的表结构和关系模式上,每个级别的数据分层存放,将最概要的数据集存储在最底层,其他尺度数据则按递增的方式进行存储,即每层只存储比上层增加的对象信息,各个级别形成一个独立的二进制流;(二)针对线面图层数据的逐级解密及显示过程步骤21 :根据数据显示请求的级别1,输入密钥key或选择密钥文件keyfile ;步骤22 :根据上述过程(一)中步骤11的方法,生成该级别解密密钥初始迭代次数N1'控制参数μ I和初始值Xtll ;步骤23 :解密该级要素a)设置指针指向该级图层的第一个要素的第一个点;b)对混沌序列进行一次迭代,得到值xpl,Xpl表示对第I级别的初始值Xtll经过初始迭代N1次后再迭代P次后的值,并将其放大m倍,得到keyx,根据公式(5)用keyx对点的横坐标的整数部分P, x进行异或操作,得到Px,对于点的纵坐标的整数部分P, y,处理过程相同,得到Py;Px = P' x Λ keyx (5)py=p' y Akeyyc)对得到的新坐标进行判断,是否超出图层坐标取值范围如果转换后的点的横坐标Px在[Xmin,XmaJ范围内,则不做任何处理;如果转换后的点的横坐标Px〈Xmin,或者Px>Xmax,则将其还原为原始坐标值,即Px=P' χ。对于转换后纵坐标的整数部分Py,处理过程与横坐标Px的过程相同。d)将新坐标值赋值给点对象,将点对象添加到对应线对象中;e)若指针指向的该级数据最后一个要素的最后一个点,则算法结束;若指针指向某一个要素的最后一个点,则指针指向下一个要素的第一个点,并跳回到步骤b);否则指针指向下一个点,算法回跳到步骤b);步骤24 :线面图层数据的层次显示,具体方法如下用户请求数据显示时,首先检查本地缓存区的数据是否符合要求,如果缓存区数据级别cachedl大于请求的数据级别requestedl,贝U遍历缓存区中requestedl及其以下的数据;如果缓存区数据级别cachedl小于请求的数据级别requestedl,则遍历缓本文档来自技高网...

【技术保护点】
一种shp线面图层数据的层次加解密技术,包括如下过程:(一)针对线面图层数据的逐级加密及存储过程步骤11:利用Hash函数的单向性构造具有分级的密钥链,将得到的各级hash值用来生成Logistic混沌系统的控制参数μ、初始值x0和初始迭代次数N,再使用不同级别的密钥加密不同等级的资源,从而实现矢量数据的分级调度;各级密钥生成的具体方法如下:a)输入密钥key或选择密钥文件keyfile;b)利用Hash函数SHA?256算法对输入密钥文件进行处理,得到长度为256位的hash值H,输入用户需求的分级数l,根据公式(1)推导生成各级别hash值Hl;Hl+1=Hash(Hl),l=1,2,3,...????(1)c)将各级别Hl以字节为单位分为32组,每组的取值范围为0?255,将这32组数据用于生成各级别Logistic映射的控制参数μl、初始迭代次数Nl和初始值x0l;d)根据公式(2)Logistic方程,输入密钥[μl,x0l],对各级密钥进行初始迭代Nl次,以扩大Logistic映射的雪崩效应;xn+1=μ*xn-μ*xn2---(2)步骤12:选择要加密的线面图层数据R,获取线面图层数据R的相关信息:图层所含线要素个数lineNum、线要素编号lineID、线要素所含点个数pointNum、点要素坐标信息pX、pY、图层坐标范围Xmin、Xmax、Ymin和Ymax;步骤13:判断每个线对象的单调性,记录单调性的转折点,并以转折点为断点,拆分成两个线对象,再继续判断转折点到末点的单调性,直到所有线对象满足单调;分析线对象的单调性以X轴为投影直线,对于有n点的折线L,若用Xj表示第j点的横坐标,若公式(3)成立,则定义第j点是L的单调点;否则,为非单调点;(Xj?Xj?1)(Xj+1?Xj)>0(1Xmax,则将其还原为原始坐标值,即px=p′x,对于转换后的纵坐标的整数部分py,处理过程与横坐标px的过程相同;d)将新坐标值赋值给点对象,将点对象添加到对应线对象中;e)若指针指向的该级数据最后一个要素的最后一个点,则算法结束;若指针指向某一个要素的最后一个点,则指针指向下一个要素的第一个点,并跳回到步骤b);否则指针指向下一个点,算法回跳到步骤b);步骤24:线面图层数据的层次显示,具体方法如下:用户请求数据显示时,首先检查本地缓存区的数据是否符合要求,如果缓存区数据级别cachedl大于请求的数据级别requestedl,则遍历缓存区中requestedl及其以下的数据;如果缓存区数据级别cachedl小于请求的数据级别requestedl,则遍历缓存区的数据,并请求传输从数据级别cachedl+1到数据级别requestedl的数据,逐级解密;如果数据显示请求为第一级即最概要信息,则直接读取显示该级解密后的要素信息;否则遍历缓存区每条线要素,逐一比较各级别点的横坐标值pX,实现解密后数据的有序显示。...

【技术特征摘要】
1.一种Shp线面图层数据的层次加解密技术,包括如下过程(一)针对线面图层数据的逐级加密及存储过程步骤11 :利用Hash函数的单向性构造具有分级的密钥链,将得到的各级hash值用来生成Logistic混沌系统的控制参数μ、初始值Xtl和初始迭代次数N,再使用不同级别的密钥加密不同等级的资源,从而实现矢量数据的分级调度;各级密钥生成的具体方法如下a)输入密钥key或选择密钥文件keyfile;b)利用Hash函数SHA-256算法对输入密钥文件进行处理,得到长度为256位的hash值H,输入用户需求的分级数I,根据公式(I)推导生成各级别hash值H1 ;Hw=Hash(H1),I = 1,2,3,·· · (I)c)将各级别H1以字节为单位分为32组,每组的取值范围为0-255,将这32组数据用于生成各级别Logistic映射的控制参数μ :、初始迭代次数N1和初始值Xcil ;d)根据公式(2)Logistic方程,输入密钥[μ1; Xtll],对各级密钥进行初始迭代N1次, 以扩大Logistic映射的雪崩效应;Χη+1= β*Χ -β*Χη(2)步骤12 :选择要加密的线面图层数据R,获取线面图层数据R的相关信息图层所含线要素个数IineNum、线要素编号linelD、线要素所含点个数pointNum、点要素坐标信息pX、 PY、图层坐标范围 Xmin、Xmax、Yfflin 和 Ymax ;步骤13 :判断每个线对象的单调性,记录单调性的转折点,并以转折点为断点,拆分成两个线对象,再继续判断转折点到末点的单调性,直到所有线对象满足单调;分析线对象的单调性以X轴为投影直线,对于有η点的折线L,若用表示第j点的横坐标,若公式(3)成立,则定义第j点是L的单调点;否则,为非单调点;(Xj-Xj-!) (XJ+1-Xj)>0 (KjXn) (3)步骤14 :利用道格拉斯-普克算法建立线状要素LOD模型,对线面图层数据R进行分级即是对线面图层数据R中的实体要素进行分级,具体方法如下用户设置各个要素级别的分级阈值T1,对线面图层数据R分级,得到RHR111=1,2,3,…},R1表示第I个级别的要素组,其中,R1是内容互不重复的要素组,避免数据存储冗余;步骤15 :针对线面图层数据R进行逐级加密,具体方法如下a)设置指针指向图层第一个要素的第一个点;b)判断当前点的级别,选择对应级别密钥进行加密运算;c)对混沌序列进行一次迭代,得到值xpl,xpl表示对第I级别的初始值Xtll经过初始迭代N1次后再迭代P次后的值,并将其放大m倍,得到keyx,根据公式(4)用keyx对点的横坐标pX的整数部分Px进行异或操作,得到异或后的点坐标P' x,对于点的纵坐标pY的整数部分Py,处理过程相同,得到V y;P' x=px Λ keyx (4)P' y=Py A keyyd)对得到的新坐标进行判断,是否超出图层坐标取值范围如果转换后的点的横坐标P' x在[Xmin,XmaJ范...

【专利技术属性】
技术研发人员:周卫王海荣李安波
申请(专利权)人:南京师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1