基于测绘控制点成果表对文本加密的方法转让专利

申请号 : CN201810486373.2

文献号 : CN108712424B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈瑞良陈雨杉陈微刘立华李苗张智禹张月国张成谢剑崔欣黄利军黄伯和丁轶李博

申请人 : 中国石油天然气集团有限公司中国石油管道局工程有限公司中国石油天然气管道工程有限公司

摘要 :

本发明公开了一种基于测绘控制点成果表对文本加密的方法,包括:选定测绘控制点成果表;表中选取20个控制点并顺序记录点号;读出20个点所有坐标值有效数字;每4位有效数字形成一个整数值密钥;按字节读取要加密的文本文件;将字节转换成ASC码值,将双字节字符或汉字转换成区位码;将ASC码值或区位码值按顺序与密钥的一个密钥整数值相加,所有密钥数值循环使用,将加密后的数值写入加密文件;将加密文件传输到接收端;接收端顺序读出控制点点号并以同样的方法生成密钥;顺序读取加密文件数值,减去密钥值,将结果值转换成ASCII字符或汉字,得到原始文本文件。本发明的有益效果:传输速度快,保密程度高,使用方便,密钥生成方便。

权利要求 :

1.一种基于测绘控制点成果表对文本加密的方法,其特征在于,包括:步骤1,文件发送端选定测绘控制点成果表,作为保密文本传输的密钥生成文件;

步骤2,随机选取测绘控制点成果表中的20个控制点,并将选中的控制点点号按顺序进行记录,同时将记录结果写入加密文件,作为保密文本的序列号;

步骤3,选取20个控制点的纵坐标值X、横坐标值Y和高程值H中的所有有效数字,有效数字包括小数点后的有效数字但不包括小数点本身;

步骤4,用得到的所有有效数字按顺序生成整数值密钥组,密钥组由100个密钥组成,每个密钥为由4个有效数字生成的整数值;

步骤5,选定需要加密的文本文件;

步骤6,按字节读取文本文件,并判断字节是否为空格,如果字节为空格,将大写字母S写入加密文件,再读取下一个字节;

步骤7,如果字节不为空格,将该字节转换成ASC码值;

步骤8,判断ASC码值是否大于等于160,即判断所读取的字节是标准ASCII表中的单字节或GB2312字符库中的双字节字符或汉字的第一个字节,如果ASC码值小于160,即所读字节为单字节,则直接进行步骤10的加密运算;

步骤9,如果ASC码值大于等于160,即所读字节为双字节字符或汉字的第一个字节,则再读取第二个字节,与第一个字节一起运算得到双字节字符或汉字的区位码值,再进行步骤10的加密运算;

步骤10,进行加密运算,将区位码值或单字节ASC码值与密钥整数值顺序相加,得到一数值,并将该数值写入加密文件;

步骤11,将加密文件通过传输途径传递到文件接收端,其中,所述传输途径包括互联网;

步骤12,文件接收端读取加密文件的序列号,获取控制点顺序,利用在文件接收端已经存储的测绘控制点成果表,按步骤3和步骤4生成密钥组;

步骤13,将加密文件的数值分别按顺序减去密钥整数值,得到文本文件的ASC码值或区位码值;

步骤14,将获得的ASC码值或区位码值转换成ASCII码或双字节字符或汉字,并将字母S转换成空格,得到原始加密的文本文件。

2.根据权利要求1所述的方法,其特征在于,步骤2中,当控制点的数量少于20个时,加入部分细部点或地形点坐标高程值,或,在控制点中重复选取部分点。

3.根据权利要求2所述的方法,其特征在于,控制点的数量不能低于15个。

4.根据权利要求1所述的方法,其特征在于,步骤3中,有效数字的选取方法为:顺序选取20个控制点的纵坐标值X、横坐标值Y和高程值H中的所有有效数字;或,一个控制点的纵坐标值、横坐标值和高程值的有效数字均循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,一个控制点的纵坐标值、横坐标值和高程值的有效数字各自循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;

或,

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

5.根据权利要求1所述的方法,其特征在于,步骤5中,选定的需要加密的文本文件的字符属于标准ASCII表和GB2312字符库。

6.根据权利要求1所述的方法,其特征在于,步骤5之后还包括:对整个文本文件进行搜索,当文本文件存在重复控制符,其中,所述重复控制符包括连续换行符和制表符,对这些控制符不进行加密,直接用字母替代,此时,步骤14中,文件接收端解密时,直接将字母替换为重复控制符即可。

7.根据权利要求1所述的方法,其特征在于,步骤9中的区位码值的运算方法为:区码=ASC(a)-160;

位码=ASC(b)-160;

区位码值=区码*100+位码;

其中:a为第一个字节;ASC(a)为第一个字节的ASC码值,b为第二个字节,ASC(b)为第二个字节的ASC码值。

8.根据权利要求1所述的方法,其特征在于,步骤10中,如果是单字节ASC码值,在与密钥值相加得到一数值后,在该数值前加标识字符a,此时,步骤13中,用标识字符a后面的数值减去密钥整数值。

9.根据权利要求1所述的方法,其特征在于,步骤12中还包括:文件接收端同时对测绘控制点成果表中的控制点进行核对。

说明书 :

基于测绘控制点成果表对文本加密的方法

技术领域

[0001] 本发明涉及测绘技术领域,具体而言,涉及一种基于测绘控制点成果表对文本加密的方法。

背景技术

[0002] 现有的测绘领域中,对于文本加密的方法有很多种,绝大部分为利用各种算法形成密钥进行加密,这种加密不管算法多么复杂,理论上都能被解密。在工程建设特别是国家重点工程建设都要进行前期测绘,形成测绘控制点成果表,这种控制点按国家相关法律、法规要求必须采用国家统一坐标系,即使采用独立坐标系也要和国家坐标系产生关系,精度等级较高的属于秘密。国家重点工程前期工作一般属于秘密范围,特别是像国家石油战略储备库这样的工程,整个工程建设过程数据、文本文件都属于国家秘密,目前主要采用的方式为人工获取和传递,这种传输方式的缺点是传递速度慢,成本高,不能实现实时传送,容易出现文件丢失、损坏和失窃泄密,且不能满足智能化建设的需要;也有采用压缩、增加固定密码、采用一些加密算法等方式,这种方式属于对保密文档的包装,很容易被破解和泄密;还有采用直接更换文件名称而内容不进行任何改动的方式,这种方式保密性最低,违反相关规定。

发明内容

[0003] 为解决上述问题,本发明的目的在于提供一种基于测绘控制点成果表对文本加密的方法,可以实现保密文本文件的网络传输,传输过程自动化、实时化,且传输过程中不会泄密。
[0004] 本发明提供了一种基于测绘控制点成果表对文本加密的方法,包括:
[0005] 步骤1,文件发送端选定测绘控制点成果表,作为保密文本传输的密钥生成文件;
[0006] 步骤2,随机选取测绘控制点成果表中的20个控制点,并将选中的控制点点号按顺序进行记录,同时将记录结果写入加密文件,作为保密文本的序列号;
[0007] 步骤3,选取20个控制点的纵坐标值X、横坐标值Y和高程值H中的所有有效数字,有效数字包括小数点后的有效数字但不包括小数点本身;
[0008] 步骤4,用得到的所有有效数字按顺序生成整数值密钥组,密钥组由100个密钥组成,每个密钥为由4个有效数字生成的整数值;
[0009] 步骤5,选定需要加密的文本文件;
[0010] 步骤6,按字节读取文本文件,并判断字节是否为空格,如果字节为空格,将大写字母S写入加密文件,再读取下一个字节;
[0011] 步骤7,如果字节不为空格,将该字节转换成ASC码值;
[0012] 步骤8,判断ASC码值是否大于等于160,即判断所读取的字节是标准ASCII表中的单字节或GB2312字符库中的双字节字符或汉字的第一个字节,如果ASC码值小于160,即所读字节为单字节,则直接进行步骤10的加密运算;
[0013] 步骤9,如果ASC码值大于等于160,即所读字节为双字节字符或汉字的第一个字节,则再读取第二个字节,与第一个字节一起运算得到双字节字符或汉字的区位码值,再进行步骤10的加密运算;
[0014] 步骤10,进行加密运算,将区位码值或单字节ASC码值与密钥整数值顺序相加,得到一数值,并将该数值写入加密文件;
[0015] 步骤11,将加密文件通过互联网或其它途径传递到文件接收端;
[0016] 步骤12,文件接收端读取加密文件的序列号,获取控制点顺序,利用在文件接收端已经存储的测绘控制点成果表,按步骤3和步骤4生成密钥组;
[0017] 步骤13,将加密文件的数值分别按顺序减去密钥整数值,得到文本文件的ASC码值或区位码值;
[0018] 步骤14,将获得的ASC码值或区位码值转换成ASCII码或双字节字符或汉字,并将字母S转换成空格,得到原始加密的文本文件。
[0019] 作为本发明进一步的改进,步骤2中,当控制点的数量少于20个时,加入部分细部点或地形点坐标高程值,或,在控制点中重复选取部分点。
[0020] 作为本发明进一步的改进,控制点的数量不能低于15个。
[0021] 作为本发明进一步的改进,步骤3中,有效数字的选取方法为:
[0022] 顺序选取20个控制点的纵坐标值X、横坐标值Y和高程值H中的所有有效数字;或,[0023] 一个控制点的纵坐标值、横坐标值和高程值的有效数字均循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0024] 一个控制点的纵坐标值、横坐标值和高程值的有效数字各自循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0025] 若干控制点一起循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字;或,[0026] 若干控制点各自循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字。
[0027] 作为本发明进一步的改进,步骤5中,选定的需要加密的文本文件的字符属于标准ASCII表和GB2312字符库。
[0028] 作为本发明进一步的改进,步骤5之后还包括:对整个文本文件进行搜索,当文本文件存在连续换行符或制表符或其他重复控制符,对这些控制符号不进行加密,直接用某个字母替代,此时,步骤14中,文件接收端解密时,直接将字母替换为重复控制符即可。
[0029] 作为本发明进一步的改进,步骤9中的区位码值的运算方法为:
[0030] 区码=ASC(a)-160;
[0031] 位码=ASC(b)-160;
[0032] 区位码值=区码*100+位码;
[0033] 其中:a为第一个字节;ASC(a)为第一个字节的ASC码值,b为第二个字节,ASC(b)为第二个字节的ASC码值。
[0034] 作为本发明进一步的改进,步骤10中,如果是单字节ASC码值,在与密钥值相加得到一数值后,在该数值前加标识字符a,此时,步骤13中,用标识字符a后面的数值减去密钥整数值。
[0035] 作为本发明进一步的改进,步骤12中还包括:文件接收端同时对测绘控制点成果表中的控制点进行核对。
[0036] 本发明的有益效果为:
[0037] 1、保密程度高。
[0038] 对于普通文本加密的方法,绝大部分为利用固定密钥或各种算法形成密钥进行加密,这种加密不管算法多么复杂,理论上都能被解密。本发明利用测绘控制点成果表生成密钥,首先成果表本身为秘密文件,非项目核心人员不能获取,成果表不在网络等公共渠道传递,再加上对成果表中的数据有简单算法,即使截获加密文件和加密算法但不能获取成果表,也不能被破译;每次传输文件选取的控制点不同、顺序不同,产生的密钥也不同,也就是说每个加密文件密钥是随机的,因此,保密程度高。
[0039] 2、使用方便。
[0040] 在工程建设特别是国家重点工程建设都要进行前期测绘,形成测绘控制点成果表,这种测绘控制点成果表在施工现场、测绘单位、设计单位或施工管理部门已经存在,不需要特别制作。如果编制简单的程序,加密解密速度非常快。
[0041] 3、解决目前传递文件存在的问题。
[0042] 目前主要采用的方式为人工获取和传递,这种传输方式的缺点是传递速度慢,成本高,不能实现实时传送,容易出现文件丢失、损坏和失窃泄密,且不能满足智能化建设的需要;也有采用压缩、增加固定密码、采用一些加密算法等方式,这种方式属于对保密文档的包装,很容易被破解和泄密;还有采用直接更换文件名称而内容不进行任何改动的方式,这种方式保密性最低,违反相关规定。
[0043] 4、密钥生成方便。
[0044] 本发明将生成密钥的原始数据在线下传递或预先放置在保密场所,加密文档线上传输,必须同时获取原始数据、加密文档、加密算法才能解密。

附图说明

[0045] 图1为本发明实施例所述的一种基于测绘控制点成果表对文本加密的方法的流程示意图。

具体实施方式

[0046] 下面通过具体的实施例并结合附图对本发明做进一步的详细描述。
[0047] 本发明实施例所述的一种基于测绘控制点成果表对文本加密的方法,包括:在施工现场(及文件发送端)选定测绘控制点成果表;在表中随机选取20个控制点并顺序记录点号;读出这20个点的所有坐标值的有效数字;每4位有效数字形成一个整数值密钥,由100个密钥构成密钥组;按字节读取需要加密的文本文件;将字节转换成ASC码值,将双字节字符或汉字转换成区位码;将ASC码值或区位码值按顺序分别与密钥的一个密钥整数值相加,所有密钥数值循环使用,将加密后的数值写入加密文件;将加密文件通过公共网络等途径传输到接收端;在文件接收端掌握施工现场的测绘控制点成果表,顺序读出控制点点号并以同样的方法生成密钥;顺序读取加密文件数值,分别减去密钥值,将结果值转换成ASCII字符或汉字,最终得到原始文本文件。
[0048] 该方法如图1所示,具体如下:
[0049] 步骤1,文件发送端选定测绘控制点成果表,作为保密文本传输的密钥生成文件。
[0050] 其中,测绘控制点成果表为为了绘制工程所在地的地形图或施工放样所必须拥有的、采用国家统一坐标系的点位坐标数据及高程数据表,此表在工程初期已经完成,存储于测绘勘察设计单位、工程建设管理部门和施工现场,通常为国家秘密。用于发送方加密和接收方解密的测绘控制点成果表格式应该一致,包括点号、横坐标是否加带号、小数取位等,点的数量也要一致,至少接收方的控制点必须包含发送方的所有控制点。
[0051] 本实施例中,选定的测绘控制点成果表(数据为虚拟数据,不是真正的国家坐标,仅用于实例)如下所示:
[0052]
[0053] 步骤2,随机选取测绘控制点成果表中的20个控制点,并将选中的控制点点号按顺序进行记录,同时将记录结果写入加密文件,作为保密文本的序列号。
[0054] 随机选取20个控制点,可以是人工选取和计算机自动选取。如果控制点数量少于20个,可以加入部分细部点或地形点坐标高程值,也可以重复选取部分点,但点位数量不能低于15个。每个国家坐标控制点含有有效数字通常为20位至28位,选取20个是为了保证能生成100个密钥所需的400个有效数字。如果密钥数量过少,保密强度会减弱,极端情况下遇到较多重复性字符容易被破解,虽然对主要容易出现的空格、换行符、制表符采取了不加密的措施,但密码总的长度还是要足够,确保不能被解密。将选中的控制点点号按顺序记录并写入加密文档是为了传递选中的控制点点号及其选中顺序。
[0055] 本实施例中,选取的控制点如下:
[0056]
[0057] 序列号为:AC005AC003AC002AC004……
[0058] 步骤3,选取20个控制点的纵坐标值X、横坐标值Y和高程值H中的所有有效数字,有效数字包括小数点后的有效数字但不包括小数点本身。
[0059] 其中,有效数字包括小数点后的数字,一个坐标点的有效数字末位紧接下一个点的首位,不需要考虑坐标点的有效位数是否为4的整倍数,所有密钥的有效数字选取为顺序选取,生成100个密钥后不再生成。
[0060] 其中,有效数字的选取方法为:
[0061] 1、顺序选取20个控制点的纵坐标值X、横坐标值Y和高程值H中的所有有效数字。
[0062] 2、一个控制点的纵坐标值、横坐标值和高程值的有效数字均循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。例如:
[0063] 在一个控制点内,循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0064] 在一个控制点内,反向循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。
[0065] 3、一个控制点的纵坐标值、横坐标值和高程值的有效数字各自循环选取或反向循环选取,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字,这样密钥不会直接显示国家坐标值。例如:
[0066] 在一个控制点内,循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0067] 在一个控制点内,循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0068] 在一个控制点内,反向循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0069] 在一个控制点内,循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0070] 在一个控制点内,反向循环选取纵坐标值的有效数字,循环选取横坐标值的有效数字,反向循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字;或,
[0071] 在一个控制点内,反向循环选取纵坐标值的有效数字,反向循环选取横坐标值的有效数字,循环选取高程值的有效数字,每次选取1位,直至选完一个控制点的所有有效数字,再选取下一个控制点的有效数字。
[0072] 4、若干控制点一起循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字。
[0073] 5、若干控制点各自循环选取或反向循环选取各自的纵坐标值、横坐标值和高程值的有效数字,每次取1位、2位或3位,直至选完所有控制点的所有有效数字。
[0074] 当然循环的样式可以有很多,并不仅限于上述方法。
[0075] 本实施例中,一个控制点内循环读取X、Y、H值,每次读取1位,取X正序、Y倒序、H正序。
[0076] 步骤4,用得到的所有有效数字按顺序生成整数值密钥组,密钥组由100个密钥组成,每个密钥为由4个有效数字生成的整数值。
[0077] 本实施例中,生成的密钥组如下:
[0078] 2718 6632 5850 1520 5696 9779 3281 8663 8174 5843……
[0079] 步骤5,选定需要加密的文本文件。其中,选定的需要加密的文本文件的字符属于标准ASCII表和GB2312字符库。
[0080] 本实施例中,选定的需要加密的文本文件为:“我们同意按A计划执行……”。
[0081] 步骤6,按字节读取文本文件,并判断字节是否为空格,如果字节为空格,将大写字母S写入加密文件,再读取下一个字节。
[0082] 将空格代码“S”写入将要发送的加密文件,防止因为文本中大量连续空格的存在,加密过程中使用过长的密钥,使密钥容易被破译,控制点坐标数据也有泄密的可能。
[0083] 进一步的,为防止文本中出现其它比较多的连续换行符、制表符或其它大量重复控制符号(不是文本文件的具体内容)的存在,可以在选定需要加密的文本文件后,对整个文本文件进行搜索,当文本文件存在连续换行符或制表符或其他重复控制符,对这些控制符号不进行加密,直接用某个字母替代,此时,文件接收端解密时,直接将字母替换为重复控制符即可。
[0084] 本实施例中,需要加密的文本文件中存在两个空格,空格不需要加密,则将SS写入加密文件。
[0085] 步骤7,如果字节不为空格,将该字节转换成ASC码值。
[0086] 本实施例中,“我”的第一个字节的码值为206。
[0087] 步骤8,判断ASC码值是否大于等于160,即判断所读取的字节是标准ASCII表中的单字节或GB2312字符库中的双字节字符或汉字的第一个字节,如果ASC码值小于160,即所读字节为单字节,则直接进行步骤10的加密运算。
[0088] 步骤9,如果ASC码值大于等于160,即所读字节为双字节字符或汉字的第一个字节,则再读取第二个字节,与第一个字节一起运算得到双字节字符或汉字的区位码值,再进行步骤10的加密运算。
[0089] 其中,区位码值的运算方法为:
[0090] 区码=ASC(a)-160;
[0091] 位码=ASC(b)-160;
[0092] 区位码值=区码*100+位码;
[0093] 其中:a为第一个字节;ASC(a)为第一个字节的ASC码值,b为第二个字节,ASC(b)为第二个字节的ASC码值。
[0094] 本实施例中,206大于160,取第二个字节,其码值为210,因此,区码为:206-160=46,位码为:210-160=50,区位码值为:4650。
[0095] 步骤10,进行加密运算,将区位码值或单字节ASC码值与密钥整数值顺序相加,得到一数值,并将该数值写入加密文件。
[0096] 其中,该数值取值为1位整数至5位整数不等。因为在区位码的第一区的区位码取值范围为0101至0194,作为数值可能与部分标准ASC码值冲突,冲突部分为101至127,所以在ASC码值前加一标识码a,此时,步骤13中,用标识字符a后面的数值减去密钥整数值。
[0097] 本实施例中,“我”字的加密:4650+2718=7368,将7368写入加密文件。字母“A”是第六个字符,它的ASC码值为65,则将第六个密钥9779与之相加,65+9779=9844,将a9844写入加密文档,其中加入“a”是为了区分区位码的第一区部分字符。同理,“我们同意按A计划执行……”写入加密文档的结果为:“SS 7368 10171 10362 6586 7316 a9844 6119 11377 13594 10691……”
[0098] 步骤11,将加密文件通过互联网或其它途径传递到文件接收端。
[0099] 步骤12,文件接收端读取加密文件的序列号,获取控制点顺序,利用在文件接收端已经存储的测绘控制点成果表,按步骤3和步骤4生成密钥组。
[0100] 同时,文件接收端同时对测绘控制点成果表中的控制点进行核对,避免由于双方的成果表内容、点号、数量不一致造成解密错误。
[0101] 步骤13,将加密文件的数值分别按顺序减去密钥整数值,得到文本文件的ASC码值或区位码值。
[0102] 本实施例中,得到文件文本的ASC码值或区位码值为:“SS 4650 3539 4512 5066 1620 a65 2838 2714 5420 4848……”。
[0103] 步骤14,将获得的ASC码值或区位码值转换成ASCII码或双字节字符或汉字,并将字母S转换成空格,得到原始加密的文本文件。
[0104] 本实施例中,区位码4650转换成汉字,char(46)+char(50)即显示汉字“我”。最终得到原始文本文件为“我们同意按A计划执行……”。
[0105] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。