发明名称 基于冗余位替换的点类型GIS矢量数据伪装与还原方法
摘要 本发明公开了一种基于冗余位替换的点类型GIS矢量数据的伪装与还原方法,属于地理信息安全领域。本发明的数据伪装处理步骤:将待伪装图层的坐标值进行变换,并根据载体图层数据特征和精度要求将其分成若干组;设置密钥,基于密钥生成一个随机序列并排序;基于生成的序列将变换后的点坐标隐藏到载体图层相应位置。经本发明的方法进行伪装处理后,载密图层从视觉上感觉不出变化,使攻击者很难发现其包含秘密信息,较好的伪装了秘密数据,即使攻击者知道其为一载密图层也由于密钥的引入很难将秘密数据提取。本发明的方法可以成功应用于点类型矢量数据的伪装与还原处理,一定程度上满足了GIS矢量数据的隐藏通信和安全传输需求。
申请公布号 CN102509058A 申请公布日期 2012.06.20
申请号 CN201110346231.4 申请日期 2011.11.04
申请人 南京师范大学 发明人 张驰;李安波;闾国年
分类号 G06F21/24(2006.01)I 主分类号 G06F21/24(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 汪旭东
主权项 1.基于冗余位替换的点类型GIS矢量数据伪装与还原方法,主要包括以下过程,(1)伪装过程:步骤一:打开一个待伪装的点图层即秘密图层文件和一个载体图层文件,确定载体图层中坐标值最大冗余位的位数num及其相关冗余数据的取值区间(min,max),其中,min=max/10;步骤二:秘密图层数据的域值、有效位长度与分组处理,(a)根据载体图层冗余数据的取值区间(min,max),对秘密图层中的每一个点坐标值对(X<sub>i</sub>,Y<sub>i</sub>)用下式计算控制符k和r:min<|X<sub>i</sub>×10<sup>-k</sup>|<max    (1)min<|Y<sub>i</sub>×10<sup>-r</sup>|<max其中,i=0,1,2,…,n-1,n为秘密图层中点的个数;(b)计算h值扫描坐标序列(X<sub>i</sub>,Y<sub>i</sub>),查看序列中坐标值有效数据位的位数,找出最大值H,根据载体图层中坐标值最大冗余位的位数num,采用下式计算分组数h,<img file="FDA0000105675790000011.GIF" wi="985" he="66" />(c)对坐标值对进行预处理,补充有效数字对每一个坐标值对(X<sub>i</sub>,Y<sub>i</sub>),查看其有效数字位数,如果小于num×h-1,则在每个坐标值最后一位有效数字后补“0”,确保其有效数字为num×h-1位;(d)将(a)中得到得k追加在X<sub>i</sub>坐标值的最后一位,将r追加在Y<sub>i</sub>坐标值的最后一位,使X<sub>i</sub>、Y<sub>i</sub>坐标值均有num×h位有效数据;(e)将坐标值对按以下方式分成h组依次截取原始坐标值对(X<sub>i</sub>,Y<sub>i</sub>)的第num×t到num×(t+1)-1位有效数字,作为第t个分组的坐标值对,最终形成h个新的坐标值对(x<sub>it</sub>,y<sub>it</sub>),其中t=0,1,2,…,h-1;i=0,1,2,…,n-1,n为待伪装图层点的个数;步骤三:根据输入的密钥key生成一个长度为n×h的伪随机序列L={L<sub>j</sub>},其中n为待伪装图层中点的个数,j=0,1,2,…,n×h-1;L<sub>j</sub>的取值范围为0到m-1,m为载体图层中要素坐标点的个数;对伪随机序列L中的数字按照升序排列,生成序列M={M<sub>j</sub>};步骤四:依次读坐标序列(x<sub>it</sub>,y<sub>it</sub>)中的坐标值对,并根据序列M={M<sub>j</sub>}将坐标值对(x<sub>it</sub>,y<sub>it</sub>)隐藏在载体图层的相应位置,具体步骤为:(a)按照下式计算j值:j=i×h+t    (3)(b)根据序列M第j个值M<sub>j</sub>查找载体图层的待嵌入位置,并获取该位置的坐标值对(A<sub>j</sub>,B<sub>j</sub>);(c)对该坐标值对(A<sub>j</sub>,B<sub>j</sub>)的冗余位数据以(x<sub>it</sub>,y<sub>it</sub>)进行替换;步骤五:循环步骤四,直至每一要素处理完毕后,保存伪装后的数据文件,并将原始密钥key,秘密图层点数n,分组数h,以及max等四个参数存入密钥文件License.txt中;(2)还原过程:步骤一:新建一个点图层,其要素集为F,同时打开一个载密图层;步骤二:读取密钥文件License.txt,根据原始密钥key、秘密图层点数n以及分组数生成一个长度为n×h的伪随机序列L={L<sub>j</sub>},其中j=0,1,2,…,n×h-1;L<sub>j</sub>的取值范围为0到m-1,m为载体图层中要素坐标点的个数;对伪随机序列L中的数字按照升序排列,生成序列M={M<sub>j</sub>};步骤三:对于打开的载密图层,根据序列M={M<sub>j</sub>}依次提取其中的载密坐标(x<sub>j</sub>,y<sub>j</sub>);步骤四:根据密钥文件中提取的max值将(x<sub>j</sub>,y<sub>j</sub>)分成(A<sub>j</sub>,B<sub>j</sub>)、(C<sub>j</sub>,D<sub>j</sub>)两部分,具体方法如下:(a)根据下式确定坐标值对的分割位置SS=-log<sub>l0</sub>max    (4)(b)截取坐标值对(x<sub>j</sub>,y<sub>j</sub>)从首位到小数点后S位的数据位形成值对(A<sub>j</sub>,B<sub>j</sub>),截取坐标值对(x<sub>j</sub>,y<sub>j</sub>)小数点S+1位之后的数据位形成值对(C<sub>j</sub>,D<sub>j</sub>);步骤五:从(C<sub>j</sub>,D<sub>j</sub>)中恢复秘密数据(a)将坐标值对(C<sub>j</sub>,D<sub>j</sub>)按下式计算其对应的整数值i、t并更改坐标序列下标,生成新的坐标值对(C<sub>it</sub>,D<sub>it</sub>)其中t=0,1,2…h-1;i=0,1,2…n-1;<img file="FDA0000105675790000021.GIF" wi="1078" he="74" />t=j%h(b)将下标i相同的h个值对转换为字符串(C′<sub>it</sub>,D′<sub>it</sub>),并按下式进行字符串拼接运算,生成新的字符串(S′<sub>i</sub>,T′<sub>i</sub>)然后转回值对(S<sub>i</sub>,T<sub>i</sub>),<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>S</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mn>0</mn><mrow><mi>h</mi><mo>-</mo><mn>1</mn></mrow></munderover><msubsup><mi>C</mi><mi>it</mi><mo>&prime;</mo></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msubsup><mi>T</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><munderover><mi>&Sigma;</mi><mn>0</mn><mrow><mi>h</mi><mo>-</mo><mn>1</mn></mrow></munderover><msubsup><mi>D</mi><mi>it</mi><mo>&prime;</mo></msubsup></mrow></math>]]></maths>(c)按下式进行处理,将值对(S<sub>i</sub>,T<sub>i</sub>)生成新的值对(E<sub>i</sub>、F<sub>i</sub>),使E<sub>i</sub>、F<sub>i</sub>的绝对值位于区间(min,max),<img file="FDA0000105675790000033.GIF" wi="1067" he="88" /><img file="FDA0000105675790000034.GIF" wi="372" he="88" />E<sub>i</sub>=S<sub>i</sub>×10<sup>-p</sup>F<sub>i</sub>=T<sub>i</sub>×10<sup>-q</sup>(d)将E<sub>i</sub>、F<sub>i</sub>的最后一位数据k,r提取出来做如下处理,获得数据对(X<sub>i</sub>,Y<sub>i</sub>);X<sub>i</sub>=E<sub>i</sub>×10<sup>k</sup>    (8)Y<sub>i</sub>=F<sub>i</sub>×10<sup>r</sup>(e)将数据对(X<sub>i</sub>,Y<sub>i</sub>)去掉末位数字和无效的0,加到新的点图层要素集F中;步骤六:循环步骤三到五,直至每一要素处理完毕后,保存提取后的数据文件。
地址 210046 江苏省南京市栖霞区文苑路1号