发明名称 基于插值预测的线面类型GIS矢量数据伪装与还原方法
摘要 本发明公开了一种基于插值预测方法进行线面类型GIS矢量数据伪装与还原的方法,属于地理信息安全领域。本发明的数据伪装处理步骤:先设置密钥文件,再逐个读取要素的数据;基于密钥选择点对进行插值处理,并根据插值前后的数据差值进行相应的伪装;将每个要素都处理完毕后保存伪装的数据。经本发明的方法进行伪装处理后,要素图层中坐标值发生改变从而导致坐标位置发生偏移,数据精度发生变化,对于数据精度质量要求较高的GIS矢量数据来说,这一处理显著降低了数据质量和数据使用价值,限制了非法拷贝或拦截数据的正常使用,达到一定的数据保护目的,一定程度上满足了GIS矢量数据的隐藏通信与安全传输需求。
申请公布号 CN102799837B 申请公布日期 2014.10.15
申请号 CN201210212942.7 申请日期 2012.06.24
申请人 南京师范大学 发明人 李安波;张驰;闾国年
分类号 G06F21/62(2013.01)I 主分类号 G06F21/62(2013.01)I
代理机构 南京知识律师事务所 32207 代理人 汪旭东
主权项 基于插值预测的线面类型GIS矢量数据伪装与还原方法,主要包括以下过程:(1)伪装过程:步骤一,设置一个二进制格式的长度为n的随机序列信息M={M<sub>i</sub>},其中i=0,1,…,n‑1;步骤二,打开一个线面类型GIS矢量数据图层,确定该图层的冗余数据起始位,并由此确定冗余数据的取值范围(min,max),根据伪装要求,在区间[max,1000max]中选择阈值T;依次读取每一要素的空间数据,获取该要素中坐标点的个数m并判断该要素是否需进行伪装处理:(a)若m&gt;=n,则按照<img file="FDA0000535540000000012.GIF" wi="279" he="81" />将前n×L个坐标点分为L组,转入下一个步骤进行处理;(b)若m&lt;n,则本要素不进行数据伪装处理;步骤三,对要素F中的每一分组F<sub>j</sub>,根据密钥循环从分组F<sub>j</sub>中筛选需要进行处理的数据对,其中j=0,1,…,L‑1;i=0,1,2,…,n‑1,筛选规则为:i)如果M<sub>i</sub>=1或i=0或i=n‑1,则分组F<sub>j</sub>的第i个点G<sub>i</sub>作为控制点不处理;ii)如果M<sub>i</sub>=0且i≠0且i≠n‑1,则分组F<sub>j</sub>的第i个点G<sub>i</sub>转入下一个步骤进行处理;步骤四,对G<sub>i</sub>进行插值处理对需要处理的数据对G<sub>i</sub>(X<sub>i</sub>,Y<sub>i</sub>),查找与其相邻的左右两个控制点A(X<sub>m</sub>,Y<sub>m</sub>)、B(X<sub>n</sub>,Y<sub>n</sub>),按下式对其横坐标进行插值处理,生成新的数据对G<sub>i</sub>′(X<sub>i</sub>′,Y<sub>i</sub>):<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>X</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><mrow><mo>(</mo><msub><mi>Y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>Y</mi><mi>m</mi></msub><mo>)</mo></mrow><mo>&times;</mo><mfrac><mrow><msub><mi>X</mi><mi>m</mi></msub><mo>-</mo><msub><mi>X</mi><mi>n</mi></msub></mrow><mrow><msub><mi>Y</mi><mi>m</mi></msub><mo>-</mo><msub><mi>Y</mi><mi>n</mi></msub></mrow></mfrac><mo>+</mo><msub><mi>X</mi><mi>m</mi></msub></mtd><mtd><mrow><mo>(</mo><msub><mi>Y</mi><mi>m</mi></msub><mo>&NotEqual;</mo><msub><mi>Y</mi><mi>n</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msubsup><mi>X</mi><mi>i</mi><mo>&prime;</mo></msubsup><mo>=</mo><mfrac><mrow><msub><mi>X</mi><mi>m</mi></msub><mo>+</mo><msub><mi>X</mi><mi>m</mi></msub></mrow><mn>2</mn></mfrac></mtd><mtd><mrow><mo>(</mo><msub><mi>Y</mi><mi>m</mi></msub><mo>=</mo><msub><mi>Y</mi><mi>n</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000535540000000011.GIF" wi="1628" he="333" /></maths>步骤五,根据插值前后的数据G<sub>i</sub>与G<sub>i</sub>′对G<sub>i</sub>进行伪装处理(a)取G<sub>i</sub>中的横坐标X<sub>i</sub>与G′<sub>i</sub>中的横坐标X′<sub>i</sub>进行如下处理计算差值的绝对值diff:diff=|X<sub>i</sub>‑X′<sub>i</sub>|    (2)(b)依据下式将G<sub>i</sub>中的横坐标X<sub>i</sub>修改为X″<sub>i</sub><img file="FDA0000535540000000021.GIF" wi="1595" he="467" />步骤六,重复上述步骤二到五,直至每一要素处理完毕后,保存伪装后的数据文件,并将原始密钥信息M及阈值T存入密钥文件;(2)还原过程:步骤一,打开密钥文件,读取阈值T与二进制格式的长度为n的随机序列信息M={M<sub>i</sub>},其中i=0,1,…,n‑1;步骤二,打开一个伪装后的GIS矢量数据图层,依次读取每一要素的空间数据,获取该要素中坐标点的个数m并判断该要素是否需进行还原处理:(a)若m&gt;=n,则按照<img file="FDA0000535540000000022.GIF" wi="283" he="86" />将前n×L个坐标点分为L组,转入下一个步骤进行处理;(b)若m&lt;n,则本要素不进行数据还原处理;步骤三,对要素F中的每一分组F<sub>j</sub>,根据密钥循环从分组F<sub>j</sub>中筛选需要进行处理的数据对,其中j=0,1,…,L‑1;i=0,1,…,n‑1,筛选规则为:i)如果M<sub>i</sub>=1或i=0或i=n‑1,则分组F<sub>j</sub>的第i个点G<sub>i</sub>作为控制点不处理;ii)如果M<sub>i</sub>=0且i≠0且i≠n‑1,则分组F<sub>j</sub>的第i个点G<sub>i</sub>转入下一个步骤进行处理;步骤四,对G<sub>i</sub>进行插值处理对需要处理的数据对G<sub>i</sub>(X″<sub>i</sub>,Y<sub>i</sub>),查找与其相邻的左右两个控制点A(X<sub>m</sub>,Y<sub>m</sub>)、B(X<sub>n</sub>,Y<sub>n</sub>),按公式(1)对其横坐标进行插值处理,生成新数据对G′<sub>i</sub>(X′<sub>i</sub>,Y<sub>i</sub>);步骤五,根据插值前后的数据G<sub>i</sub>与G<sub>i</sub>′对G<sub>i</sub>进行还原处理(a)取G<sub>i</sub>中的横坐标X<sub>i</sub>与G′<sub>i</sub>中的横坐标X′<sub>i</sub>根据下式计算差值的绝对值diff′:diff′=|X″<sub>i</sub>‑X′<sub>i</sub>|    (4)(b)依据下式将G<sub>i</sub>中的横坐标X″<sub>i</sub>还原为X<sub>i</sub><img file="FDA0000535540000000031.GIF" wi="1615" he="468" />步骤六,重复上述还原过程的步骤二到五,直至每一要素处理完毕后,保存还原后的数据文件。
地址 210046 江苏省南京市栖霞区文苑路1号