基于测绘控制点成果表对数字高程模型加密的方法与流程

文档序号:16754038发布日期:2019-01-29 17:10阅读:909来源:国知局
基于测绘控制点成果表对数字高程模型加密的方法与流程

本发明涉及测绘技术及信息安全技术领域,具体而言,涉及一种基于测绘控制点成果表对数字高程模型加密的方法。



背景技术:

现有的测绘及信息安全领域中,经常遇到传输数字高程模型问题。《测绘管理工作国家秘密范围的规定》(国家测绘局、国家保密局国测办字[2003]17号文件印发)公布了测绘管理工作国家秘密目录,其中规定:“1:1万、1:5万全国高精度数字高程模型”属于国家“绝密”,“涉及军事、国家安全要害部门的点位名称及坐标;涉及国民经济重要工程设施精度优于±100米的点位坐标”属于国家“秘密”。虽然涉及全国高精度数字高程模型的传输不会经常遇到,但涉及国民经济重要工程设施精度优于±100米的点位坐标的数据、图纸和高程模型比较常见。特别是国家干线油气管网的站场、阀室、穿跨越点、隧道、国家战略储备库的数字高程模型传输还是常见的,尤其目前正在实施智能管道建设和管道全生命周期管理,特别需要实时传输各种带有国家坐标的数据,比如含有国家地理坐标的数字高程模型。

在工程建设特别是国家重点工程建设都要进行前期测绘,形成测绘控制点成果表,这种控制点按国家相关法律、法规要求必须采用国家统一坐标系,即使采用独立坐标系也要和国家坐标系产生关系,精度等级较高的属于秘密。

按照有关规定,上述所有属于国家秘密的数据是绝对不能在互联网上传输的,目前主要采用的方式为人工获取和传递,这种传输方式的缺点是传递速度慢,成本高,不能实现实时传送,容易出现文件丢失、损坏和失窃泄密,且不能满足智能化建设的需要;也有采用压缩、增加固定密码、采用一些加密算法等方式,这种方式属于对保密文档的包装,很容易被破解和泄密;还有采用直接更换文件名称而内容不进行任何改动的方式,这种方式保密性最低,违反相关规定。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种基于测绘控制点成果表对数字高程模型加密的方法,可以实现带有国家地理坐标的数字高程模型数据文件的网络传输,传输过程自动化、实时化,且传输过程中不会泄密。

本发明提供了一种基于测绘控制点成果表对数字高程模型加密的方法,包括:

步骤1,文件发送端选定需要加密的数字高程模型文件,将该数字高程模型文件转换成ascii格式的ascii文件;

步骤2,文件发送端选定测绘控制点成果表,作为数字高程模型文件传输的密码生成文件;

步骤3,随机选取测绘控制点成果表中的1个控制点,并将选中的控制点点号写入加密文件;

步骤4,计算ascii文件头中坐标点坐标值与选中的控制点坐标值的相对关系数据,并写入加密文件;

步骤5,利用选中的控制点数据生成15位像元尺寸加密密码;

步骤6,利用生成的15位像元尺寸加密密码加密ascii文件头中的像元尺寸数据,并将结果写入加密文件;

步骤7,在ascii文件中随机选取10个数字高程值并取其平均值,得到此平均值的整数部分位数,此位数作为数字高程加密密码的位数;

步骤8,按照生成100个数字高程加密密码所需要的有效数字位数,计算需要选取的控制点数量;

步骤9,随机选取控制点成果表中指定数量的控制点,取出所有控制点的纵坐标值x、横坐标值y和高程值h中的有效数字,有效数字包括小数点后的有效数字但不包括小数点本身;

步骤10,利用得到的所有有效数字按一定顺序生成100个数字高程加密密码;

步骤11,利用数字高程加密密码加密数字高程值并写入加密文件;

步骤12,将加密文件通过互联网或其它途径传递到文件接收端;

步骤13,文件接收端利用已存储的控制点成果表,并按照文件发送端记录的控制点点号,读取加密文件中的控制点点号对应的控制点数据,生成解密密码;

步骤14,按照文件发送端加密运算的逆运算进行解密,包括ascii文件头中坐标数据、像元尺寸数据及所有数字高程值,得到原始的ascii文件;

步骤15,将ascii文件转换成初始格式,完成对数字高程模型的加密传输。

作为本发明进一步的改进,步骤4中,计算ascii文件头中坐标点坐标值与选中的控制点坐标值的相对关系数据方法为:

纵坐标增量δx=x-x;

横坐标增量δy=y-y;

式中,x为ascii文件头中坐标点纵坐标值,y为ascii文件头中坐标点横坐标值,x为控制点纵坐标值,y为控制点横坐标值。

作为本发明进一步的改进,步骤5的方法具体为:

倒序选取1位控制点纵坐标值的有效数字,即选取x值的最后1位有效数字作为加密密码的第1位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的最后1位有效数字作为加密密码的第2位;

倒序选取1位控制点高程值的有效数字,即选取h值的最后1位有效数字作为加密密码的第3位;

倒序选取1位控制点纵坐标值的有效数字,即选取x值的倒数第2位有效数字作为加密密码的第4位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的倒数第2位有效数字作为加密密码的第5位;

倒序选取1位控制点高程值的有效数字,即选取h值的倒数第2位有效数字作为加密密码的第6位;

……,

以此类推,在纵坐标值x和横坐标值y中各选取6位有效数字,在高程值中选取3位有效数字,共同组成15位加密密码。

作为本发明进一步的改进,步骤6的方法具体为:

将15位加密密码转换成加密值,此加密值为小数值,此小数值前3位为0.00,从第4位到末位使用15位密码值;

将像元尺寸值与加密值相加,将结果写入加密文件。

作为本发明进一步的改进,步骤8的方法具体为:

先计算生成100个数字高程加密密码所需要的有效数字位数,即单个密码的位数乘以100;

每个控制点按照20位有效数字,计算出需要选取的控制点数量;

即:选取的控制点数量=(单个密码的位数*100)/20。

作为本发明进一步的改进,步骤10的方法具体为:

顺序选取选中的控制点的纵坐标值x、横坐标值y和高程值h中的所有有效数字;或,

一个控制点的纵坐标值、横坐标值和高程值的有效数字均循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

一个控制点的纵坐标值、横坐标值和高程值的有效数字各自循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

若干控制点一起循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字;或,

若干控制点各自循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字。

作为本发明进一步的改进,步骤11的方法具体为:

顺序读取数字高程值,将数字高程值分别按顺序与加密密码相加,并将结果写入加密文件,其中,100个加密密码循环使用。

作为本发明进一步的改进,步骤14的方法具体为:

解除ascii文件头中坐标点坐标值与选中的控制点坐标值的相对关系:

纵坐标:x=x-δx;

横坐标:y=y-δy;

式中,δx为纵坐标增量,δy为横坐标增量,x为控制点纵坐标值,y为控制点横坐标值;

像元尺寸数据解密:将像元尺寸加密结果按照对应的小数位数减去像元尺寸加密密码;

数字高程值解密:将加密的数字高程值按顺序分别减去数字高程加密密码。

本发明的有益效果为:

1、保密程度高

对于普通加密的方法,绝大部分为利用固定密钥或各种算法形成密钥进行加密,这种加密不管算法多么复杂,理论上都能被解密。本发明利用测绘控制点成果表生成密钥,首先成果表本身为秘密文件,非项目核心人员不能获取,成果表不在网络等公共渠道传递,再加上对成果表中的数据有简单算法,即使截获加密文件和加密算法但不能获取成果表,也不能被破译;每次传输加密数字高程模型选取的控制点不同、顺序不同,产生的密钥也不同,也就是说每次加密数字高程模型密钥是随机的,因此,保密程度高。

2、使用方便

在工程建设特别是国家重点工程建设都要进行前期测绘,形成测绘控制点成果表,这种测绘控制点成果表在施工现场、测绘单位、设计单位或施工管理部门已经存在,不需要特别制作,因此只需编制简单的程序,加密解密速度非常快。

3、解决目前传递数字高程模型存在的问题

目前主要采用的方式为人工获取和传递,这种传输方式的缺点是传递速度慢,成本高,不能实现实时传送,容易出现文件丢失、损坏和失窃泄密,且不能满足智能化建设的需要;也有采用压缩、增加固定密码、采用一些加密算法等方式,这种方式属于对保密文档的包装,很容易被破解和泄密;还有采用直接更换文件名称而内容不进行任何改动的方式,这种方式保密性最低,违反相关规定。

4、密钥生成方便

本发明将生成密钥的原始数据在线下传递或预先放置在保密场所,发送端随时可以生成密钥,接收端只要收到加密的数字高程模型和控制点点号,可迅速生成密钥,进行解密。

附图说明

图1为本发明实施例所述的一种基于测绘控制点成果表对数字高程模型加密的方法的流程示意图。

具体实施方式

下面通过具体的实施例并结合附图对本发明做进一步的详细描述。

本发明实施例所述的一种基于测绘控制点成果表对数字高程模型加密的方法,包括:发送端选定测绘控制点成果表;测绘控制点成果表中随机选取1个控制点;读出控制点的所有有效数字并生成像元尺寸加密密码;再随机选取若干个控制点,读出所有控制点的有效数字并生成数字高程加密密码;将选定的控制点点号写入加密文件。选定需要加密的数字高程模型文件,将文件转换成ascii格式;读取ascii文件头中坐标数据;计算坐标值与选定的一个控制点的坐标值的相对关系数据并写入加密文件;将文件头中的像元尺寸数据用像元尺寸加密密码加密并写入加密文件;对ascii文件的所有数字高程值用生成的数字高程加密密码进行加密,将加密后的数字高程写入加密文件。将加密文件传输到接收端,接收端利用已存储的控制点成果表并读取加密文件中的控制点点号生成各种解密密码,按照发送端加密运算的逆运算得到原始的ascii文件;将ascii文件转换成初始格式,完成对数字高程模型的加密传输。

该方法如图1所示,具体如下:

步骤1,文件发送端选定需要加密的数字高程模型文件,将该数字高程模型文件转换成ascii格式的ascii文件。

数字高程模型的数据通常为geotiff格式,为了便于计算和加密,可以通过globalmapper软件将其转换成ascii格式,即由扩展名为“.gif”的文件转换成扩展名“.asc”的文件。

本实施例中,具体操作步骤:打开globalmapper软件;打开dem数据,点击“file”菜单下的“openyourowndatafiles”,选择对应的dem数据(geotiff格式),单击“打开”。文件打开后单击“file”菜单下的“export→”,选择“exportelevationgridformat……”,在弹出的“selectexportformat”对话框中,选择“arcasciigrid”,点击“ok”。在后面弹出的保存数据对话框,点击ok,完成对dem数据的转换。转换后的ascii格式文件可以直接打开,例如:

836.199838.837838.571835.617832.148828.874823.868815.593806.904800.557795.996792.708791.236

834.264838.33839.052835.943832.113829.524823.82814.58807.724803.11799.057795.227791.787

834.188837.462838.816838.918836.431834.143828.917819.808814.224810.171806.766801.165797.804

836.812840.223844.258847.182847.277844.403838.384828.549821.165816.614812.189809.334809.636

838.123843.025848.751851.812851.741848.5842.803834.715827.322820.235816.521816.913821.136

840.077845.92851.326854.68853.977850.5844.972838.634834.145829.494825.624826.313830.18

步骤2,文件发送端选定测绘控制点成果表,作为数字高程模型文件传输的密码生成文件。

本实施例中,选定的测绘控制点成果表(数据为虚拟数据,不是真正的国家坐标,仅用于实例)如下所示:

步骤3,随机选取测绘控制点成果表中的1个控制点,并将选中的控制点点号写入加密文件。

本实施例选中ac005点,将此点号写入加密文件,主要目的是文件接收端知道用那个控制点来计算坐标相对关系和生成像元尺寸加密密码。

步骤4,计算ascii文件头中坐标点坐标值与选中的控制点坐标值的相对关系数据,并写入加密文件。其中,计算ascii文件头中坐标点坐标值与选中的控制点坐标值的相对关系数据方法为:

纵坐标增量δx=x-x;

横坐标增量δy=y-y;

式中,x为ascii文件头中坐标点纵坐标值,y为ascii文件头中坐标点横坐标值,x为控制点纵坐标值,y为控制点横坐标值。

本实施例中,将1420.90和-12094.71写入加密文档:

纵坐标增量δx=x-x;δx=2838109.97-2836689.07=1420.90

横坐标增量δy=y-y;δy=39765552.67-39777647.38=-12094.71。

步骤5,利用选中的控制点数据生成15位像元尺寸加密密码。具体为:

倒序选取1位控制点纵坐标值的有效数字,即选取x值的最后1位有效数字作为加密密码的第1位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的最后1位有效数字作为加密密码的第2位;

倒序选取1位控制点高程值的有效数字,即选取h值的最后1位有效数字作为加密密码的第3位;

倒序选取1位控制点纵坐标值的有效数字,即选取x值的倒数第2位有效数字作为加密密码的第4位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的倒数第2位有效数字作为加密密码的第5位;

倒序选取1位控制点高程值的有效数字,即选取h值的倒数第2位有效数字作为加密密码的第6位;

倒序选取1位控制点纵坐标值的有效数字,即选取x值的倒数第3位有效数字作为加密密码的第7位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的倒数第3位有效数字作为加密密码的第8位;

倒序选取1位控制点高程值的有效数字,即选取h值的倒数第3位有效数字作为加密密码的第9位;

倒序选取1位控制点纵坐标值的有效数字,即选取x值的倒数第4位有效数字作为加密密码的第10位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的倒数第4位有效数字作为加密密码的第11位;

倒序选取1位控制点纵坐标值的有效数字,即选取x值的倒数第5位有效数字作为加密密码的第12位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的倒数第5位有效数字作为加密密码的第13位;

倒序选取1位控制点纵坐标值的有效数字,即选取x值的倒数第6位有效数字作为加密密码的第14位;

倒序选取1位控制点横坐标值的有效数字,即选取y值的倒数第6位有效数字作为加密密码的第15位。

上述方法,在纵坐标值x和横坐标值y中各选取6位有效数字,在高程值中选取3位有效数字,共同组成15位加密密码。

本实施例中使用ac005坐标值生成密码:

ac0052838109.9739765552.671650.26

生成的15位加密密码为:776962920051585。

步骤6,利用生成的15位像元尺寸加密密码加密ascii文件头中的像元尺寸数据,并将结果写入加密文件。具体为:将15位加密密码转换成加密值,此加密值为小数值,此小数值前3位为0.00,从第4位到末位使用15位密码值;将像元尺寸值与加密值相加,将结果写入加密文件。

本实施例中,像元尺寸加密值为:0.00776962920051585

将像元尺寸值与加密值相加,将得数写入加密文档,即:

0.00027777777777769+0.00776962920051585=0.00804740697829354。

步骤7,在ascii文件中随机选取10个数字高程值并取其平均值,得到此平均值的整数部分位数,此位数作为数字高程加密密码的位数。

本实施例中位数为3。

步骤8,按照生成100个数字高程加密密码所需要的有效数字位数,计算需要选取的控制点数量。具体为:

先计算生成100个数字高程加密密码所需要的有效数字位数,即单个密码的位数乘以100;

每个控制点按照20位有效数字,计算出需要选取的控制点数量;

即:选取的控制点数量=(单个密码的位数*100)/20。

本实施例中,选取的控制点数量=(3*100)/20=15。

步骤9,随机选取控制点成果表中指定数量的控制点,取出所有控制点的纵坐标值x、横坐标值y和高程值h中的有效数字,有效数字包括小数点后的有效数字但不包括小数点本身。

本实施例中,选取的控制点如下:

控制点点号顺序为:ac005ac003ac002ac004……,将此记录结果写入加密文件。

步骤10,利用得到的所有有效数字按一定顺序生成100个数字高程加密密码。顺序生成的方法具体为:

1、顺序选取选中的控制点的纵坐标值x、横坐标值y和高程值h中的所有有效数字。

2、一个控制点的纵坐标值、横坐标值和高程值的有效数字均循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。例如:

在一个控制点内,循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

在一个控制点内,反向循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。

3、一个控制点的纵坐标值、横坐标值和高程值的有效数字各自循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。例如:

在一个控制点内,循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

在一个控制点内,循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

在一个控制点内,反向循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

在一个控制点内,循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

在一个控制点内,反向循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,

在一个控制点内,反向循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。

4、若干控制点一起循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字。

5、若干控制点各自循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字。

当然循环的样式可以有很多,并不仅限于上述方法。

本实施例中,一个控制点内循环读取x、y、h值,每次读取1位,取x正序、y倒序、h正序。用得到的所有有效数字按顺序生成整数值密钥组,密钥组由100个密钥组成,每个密钥为由3个有效数字生成的整数值,生成的密钥组如下:

271866325850152056……

步骤11,利用数字高程加密密码加密数字高程值并写入加密文件。具体为:顺序读取数字高程值,将数字高程值分别按顺序与加密密码相加,并将结果写入加密文件,其中,100个加密密码循环使用。

本实施例中,顺序读取高程值为:836.199838.837838.571835.617832.148828.874……,分别按顺序与加密密码相加为:1107.1991704.8371163.5711685.617984.148884.874……,将其写入加密文档。

步骤12,将加密文件通过互联网或其它途径传递到文件接收端。

步骤13,文件接收端利用已存储的控制点成果表,并按照文件发送端记录的控制点点号,读取加密文件中的控制点点号对应的控制点数据,生成解密密码。

步骤14,按照文件发送端加密运算的逆运算进行解密,包括ascii文件头中坐标数据、像元尺寸数据及所有数字高程值,得到原始的ascii文件。具体为:

解除ascii文件头中坐标点坐标值与选中的控制点坐标值的相对关系:

纵坐标:x=x-δx;

横坐标:y=y-δy;

式中,δx为纵坐标增量,δy为横坐标增量,x为控制点纵坐标值,y为控制点横坐标值;

像元尺寸数据解密:将像元尺寸加密结果按照对应的小数位数减去像元尺寸加密密码;

数字高程值解密:将加密的数字高程值按顺序分别减去数字高程加密密码。

本实施例中,解除ascii文件头中坐标值与选中的控制点坐标值的相对关系:

纵坐标:x=x-δx=2838109.97-1420.90=2836689.07;

横坐标:y=y-δy=39765552.67+12094.71=39777647.38;

像元尺寸解密:0.00804740697829354-0.00776962920051585=0.00027777777777769

数字高程值解密:1107.1991704.8371163.5711685.617984.148884.874……,分别减去密码值271866325850152056……,得到原始高程值836.199838.837838.571835.617832.148828.874……。

步骤15,将ascii文件转换成初始格式,完成对数字高程模型的加密传输。

本实施例中,打开globalmapper软件,点击“file”菜单下的“openyourowndatafiles”,选择对应的dem数据(ascii格式),单击“打开”,单击“file”菜单下的“export→”,选择“exportelevationgridformat……”,在弹出的“selectexportformat”对话框中,选择“geotiff”,点击“ok”。在后面弹出的保存数据对话框,点击ok,完成对dem数据的转换。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1