基于加密狗的坐标转换参数加密方法研究与实现

2020-03-02 11:36余章蓉王友昆时盛春
软件 2020年1期
关键词:坐标转换算法

余章蓉 王友昆 时盛春

摘  要: 不同坐标系成果之间的转换是测量工作中必不可少的环节。基于转换参数保密的需求,如何确保转换参数不被泄密是坐标转换过程中需要解决的问题。本文基于新一代加密狗的特点,提出利用加密狗对转换参数加密和存储,并将坐标转换或混淆的代码移植到加密狗内,实现了省级海量参数的加密、管理和调用,有效杜绝了转换参数和坐标转换过程的泄密,大大提高了保密强度。

关键词: 坐标转换;参数;加密狗;算法

中图分类号: P209    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.01.018

本文著录格式:余章蓉, 王友昆, 时盛春, 等. 基于加密狗的坐标转换参数加密方法研究与实现[J]. 软件,2020,41(01):8590

【Abstract】: The transformation between different coordinate system results is an indispensable link in surveying work. Based on the requirement of confidentiality of conversion parameters, how to ensure that conversion parameters are not leaked is a problem to be solved in the process of coordinate transformation. Based on the characteristics of the new generation of dongle, this paper proposes to use the dongle to encrypt and store the conversion parameters, and transplant the coordinate conversion or confused code into the dongle. It realizes the encryption, management and invocation of provincial massive parameters, effectively eliminates the leakage of conversion parameters and coordinate conversion process, and greatly improves the security intensity.

【Key words】: Coordinate transformation; Parameter; Dongle; Algorithm

0  引言

隨着国家关于2018年7月全面使用2000国家大地坐标系要求的实施,各类国土资源空间数据均需要实现向2000国家大地坐标系转换[1]。虽然2000国家大地坐标系已经全面启用,但实际工作中1954年北京坐标系、1980年西安坐标系、2000国家大地坐标系以及基于以上坐标系统建立的独立坐标系之间的相互转换需求仍然存在。测绘地理信息数据是涉及国家安全的基础性和战略性资源[2]。根据《测绘管理工作国家秘密目录》的规定,国家大地坐标系、地心坐标系以及独立坐标系之间的相互转换参数属于绝密级的保密范围[2]。针对坐标转换参数的保密方法,部分学者做了相关研究工作[3-7],但保密的方法还可待进一步提高。本文采用将坐标转换参数加密存储在加密狗,通过调用加密狗的加密或解密函数来实现转换参数的加密或解密,能够有效阻断转换参数的外泄,提高了转换参数的保密强度。

1  加密狗

1.1  基本原理

加密狗是利用储存在硬件中的信息对软件进行加密保护,软件通过特殊指令对USB接口的加密狗读取和校验[8],由于加密狗硬件不易复制,保护性能较好,在防止软件盗版方面应用较为广泛[9-13]。加密狗的基本原理是软件执行过程中不断对硬件狗执行访问或读写等操作,确认软件操作的合法性和有效性,以此来达到保护软件版权的目的。目前,加密狗的发展已经发展到第五代产品,不但能够提供软件版权保护的功能,而且还能提供几十至几百Kb的存储空间,以及独立的芯片运算能力,可以将一些关键的算法或敏感数据植入加密狗内,利用加密狗芯片读写数据、执行算法、返回结果,从而实现对关键算法和敏感数据的保护。

1.2  深思精锐5

深思精锐5加密狗(以下简称精锐5)是北京深思数盾科技股份有限公司生产的新一代硬件加密狗,具有安全性高、运算速度快、存储空间大、内置加密算法全等优点。

(1)安全性方面。精锐5基于PKI 的现代安全体系,采用ARM SC300 安全智能卡芯片,通过CC EAL5+安全认证,可有效防止硬件剖片及克隆,并通过为每一位开发者定制的SDK技术、主动防御技术以及代码移植技术,有效地保证开发者的使用过程中的数据流均无法查看、伪造、篡改、冒用。

(2)运算速度方面。精锐5采用32位ARM芯片,主频高达24Mhz,执行速度可达50DMIPS,可以执行复杂的任务算法,大大提高了核心代码移植到加密狗内的运算速度。

(3)存储空间方面。精锐5提供了高达512K的存储空间,能够存储更多的用户数据,可将敏感的数据存储在指定区域,由于只能用加密狗ID打开存储空间,大大提高了参数存储的保密性。

(4)内置加密算法。精锐5内置了对称算法(DES、TDES、AES)和非对称算法(RSA、ECC),能够快速利用不同算法实现对信息的加密和解密,为开发者加密和解密提供了较大的便利。

1.3  加密算法

常用的加密算法包括对称加密算法、非对称加密算法、散列(Hash)算法等[14-16]。对称算法主要包括数据加密标准DES(Data Encryption Standard)、三重数据加密标准TDES(Triple DES)[17]、高级加密标准AES(Advanced Encryption Standard)等,优点是运算速度快、资源消耗低,缺点是使用相同密匙进行加密和解密,无法对密匙进行有效管理,常用于加密大量数据的场合,对称算法示意如图1。

非对称算法主要包括RSA、数字签名算法DSA(Digital Signature Algorithm)、椭圆曲线密码编码学ECC(Elliptic Curves Cryptography)等,优点是安全性高,采用公钥加密和私钥解密,密匙的管理比较容易,缺点是运算速度慢、资源消耗高,一般用公钥加密和私钥解密,常用于加密小数据量场合或用于数据签名[18]。

散列算法是一种单向算法,即通过算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此,散列算法常用在不可还原的密码存储、信息完整性校验等。

加密的数据量较少时,可以直接采用非对称算法进行加密。加密数据较多,而又需要较高的安全性时,可以采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样既实现快速加密又实现了安全管理密钥[19]。精锐5加密狗SDK提供了DES、TDES、RSA算法API接口,可以参考其函数文档调用对应的API接口实现转换参数的加密和解密,见表1。

2  加密设计和实现

本文采用精锐5及其SDK开发包实现坐标转换软件的保护,以及对转换参数的加密、存储和解密。

2.1  加流程

为保证坐标转换参数的保密,对大数据量、线下的坐标转换应用场景为专人、专机进行转换,可采用软件与加密狗对应,将转换参数和密匙存储在加密狗中,并将参数的加密、解密、坐标转换等功能放到加密狗中实现。参数加密的流程包括读取文本参数、参数加密和参数写入,参数解密包括读取狗内参数、参数解密、坐标转换,具体流程见图3。

(1)打开加密狗验证。利用深思5进行各项功能操作,均应先打开加密狗验证其授权情况,确认其授权正确性和操作權限,确保其能够正确使用,有效保护软件。

(2)读取文本参数。由于存在多个转换参数,因此加密前,需要读取存储多个转换参数的字符文件,并按设计的结构长度转换为对应的字节流用于加密。

(3)参数加密。利用加密狗自带的加密算法,对需要加密的参数字节流进行加密,得到加密后的字节流。

(4)参数写入。将加密后的字节流,写入加密狗的指定区域。

(5)读取狗内参数。读取加密狗的指定存储区域的加密字节流。

(6)参数解密。利用加密狗自带的解密算法,对加密的字节流进行解密,得到解密的转换参数。

(7)坐标转换。利用解密的转换参数,并利用相应的转换模型进行坐标转换,坐标转换模块可以在软件内实现也可以在加密狗内实现。

2.2  参数存储

常用的坐标转换模型包括布尔莎七参数模型、三维七参数转换模型、二维七参数转换模型、三维七参数模型、二维四参数转换模型、多项式拟合模型等[20]。本文以区域坐标转换中应用较为广泛的平面四参数转换模型(二维四参数转换模型)和布尔莎七参数模型为例进行说明。

转换参数的加密存储,简便的方法是将所有参数转换为字符,对字符加密后直接写入加密狗中。当存在多种类型及多个转换参数,而加密狗存储空间有限时,这种方式不能达到有效管理和利用转换参数目的。因此,首先应对其存储的数据类型进行分析,以便节约存储空间和提高存储效率。

一个转换参数包括源坐标系名称、目标坐标系名称、参数类型、平移参数、旋转参数、尺度参数等。平移参数、旋转参数、尺度参数可以采用单精度浮点型(float)或双精度浮点型(double)数值类型存储,参数类型可以采用无符号短整型(ushort)存储。坐标系名称如果采用字符(string)存储,占用的存储空间较大,并且有冗余,因此可以对不同地区、不同坐标系名称建立索引的方式减少数据冗余。如昆明地区的四套坐标系的相互转换关系有6种组合,如果按照字符存储将占用96个字节,如果采用索引的方式仅占用24个字节,实例见表2

平移参数的单位为米,单精度浮点型即可满足其有效小数位(3位)的要求。对于单精度浮点型有效小数位7位无法满足旋转参数和尺度参数小数位精度的情况,可以对其放大数倍(如1E6)后存储,调用转换时再除以相应的倍数。平面四参数的逻辑结构见表3,一个平面四参数将占用22字节。

布尔莎七参数的逻辑结构见表4,一个布尔莎七参数将占用30字节。

以云南省129个县(市、区)坐标转换参数存储为例,每个县市区均有2000国家大地坐标系、1954北京坐标系、1980西安坐标系、地方坐标系四套坐标系的相关转换参数,包括平面四参数和布尔莎七参数,其占用的存储空间为129×6×52=40248字节,约40Kb的存储空间。加密狗内存储和调用时,通过参数的数量及各参数固定占用的存储空间进行索引,能够实现快速的存储和调用。

2.3  加密算法

本文采用对称算法和非对称加密算法相结合的方式对转换参数进行加密。首先,采用数据加密标准TDES对称算法对转换参数加密,密匙由坐标转换人员输入的密码转换而来;然后,采用RSA非对称算法对转换参数加密,私钥存放在加密狗中。调用加密狗解密参数时,不但需要加密狗调用私钥解密,还要输入坐标转换人员知晓的密码才能解密参数用于坐标转换。这种方式确保了加密狗遗失,转换参数泄密的问题,加密流程图4。

对称加密的密匙由用户密码生成,确保只有知道密码的坐标转换人员才能进行参数的加密和使用。非对称加密RSA字节数一般为1024位,当待处理的数据超过这个长度时需要对其分段处理。非对称加密的公钥和私钥密匙对可在加密前进行重置,确保生成不同的密匙。以上密匙的生成,还可以同使用电脑的硬件进行绑定,确保加密狗在指定的电脑上使用。转换参数的解密过程则相反,不同的是非对称算法采用加密狗的私钥进行解密。

此外,精锐5支持代码移植功能,即可以将软件中最重要的代码从软件中“挖走”并移植到精锐5硬件内部,当软件中需要执行此段代码时,则通过API调用精锐5硬件内移植过去的代码,精锐5通过这种方式实现了对重要代码的有效保护。

为避免坐标参数在电脑内存中被读取,可以将坐标转换及坐标混淆的函数方法移植到加密狗内。坐标转换函数直接读取对应的转换参数,传入需要转换的源坐标值,转换后输出目标坐标值,这种方式进一步提高了转换参数的保密性。

2.4  软件实现

本文采用Visual studio2012开发平台,C#语言及.net Framework,利用精锐5提供的SDK开发套件提供的丰富API函数接口,在坐标转换系统基础上,快速实现了对多个类型和多个转换参数的加密、解密、存储、调用及管理,软件界面如图5。

如图5所示,软件对云南省129个县(市、区)坐标转换参数按照区域、源坐标名称、目标坐标名称同加密狗内存储的加密转换参数通过索引建立联系。管理员点击参数文件写入狗内即可实现转换参数的加密;用户只需要选择转换区域、源坐标名称、目标坐标名称,以及选择转换方式,点击坐标转换即可实现坐标的转换工作。加密、解密以及坐标转换的过程均在加密狗内进行,转换参数不会显示出来,并且计算的过程均在加密狗内完成,保密的安全性较高。

3  结语

本文根据加密狗的存储便捷、代码移植、高度安全等特点,提出利用加密狗实现转换参数加密、存储、解密、调用的思路。通过设计转换参数的数据结构,大大节约了转换参数的存储空间,实现了多种类型和多个转换参数在加密狗内的存储,解决了加密狗存储空间不足的问题。同时,将参数加密、存储、解密、调用的全过程在加密狗内得到了实现,杜绝了转换参数和坐标转换过程的泄密,大大提高了保密强度,有效实现了转换参数的保密需求。

参考文献

[1] 张海涛, 纪敏. 平面四参数模型下的城市平面坐标与2000国家大地坐标转换方法研究[J]. 测绘通报, 2018(07): 74-77.

[2] 刘波, 严俊, 姚茂华. 地理信息安全加密系统的实现与应用[J]. 测绘通报, 2017(02): 106-108.

[3] 吴国梁, 张黎, 高翔, 等. 基于ArcGIS的坐标转换参数保密研究与应用[J]. 地理空间信息, 2018(11): 82-83.

[4] 韩聪, 刘建国, 梅伟长. 坐标转换及参数加密软件设计与实现[J]. 长春师范大学学报, 2017(06): 85-87.

[5] 李裕聪. CORS系统坐标转换方案的保密设计[J]. 中国水运, 2016(07): 39-40.

[6] 李前斌, 林贤斌, 陈金荣. 基于Android下二维码的CORS坐标转换参数保密传播方法[J]. 测绘通报, 2014(04): 136-137.

[7] 秦宽, 高军虎. 基于CORS用户端的实时坐标和高程转换与加密技术[J]. 铁道勘察, 2015(04): 24-27.

[8] 徐涛, 文福安. 基于USBKey的考试系统安全的设计与实现[J]. 软件, 2016, 37(01): 4-8.

[9] 徐涛. 基于加密狗保护软件应用的探讨[J]. 电脑知识与技术, 2016, 12(07): 81-83.

[10] 张鹏, 南洪国, 滕林, 等. 工控软件USB加密狗的设计[J]. 工程与试验, 2013, 53(04): 72-74.

[11] 滕广超, 郎建军, 杜奇才, 等. 基于STM32的硬件狗设计与实现[J]. 微处理机, 2013, 34(06): 70-72.

[12] 孙军, 谈鹏图, 林文兴, 等. 加密与密文检索云服务系统[J]. 软件, 2018, 39(10): 92-96.

[13] Jing Z. Research on Data Encryption Technology in Network Communication Security[J]. computer engineering & Software, 2019, 40(8): 95-97. (赵静. 网络通信安全中數据加密技术研究[J]. 软件, 2019, 40(8): 95-97. )

[14] 李青, 陈靓, 冯梅, 等. 浅析几种典型数据加密算法[J]. 信息系统工程, 2017(11): 148-149.

[15] 左晓静, 谭会君. 常用数据加密算法分析及比较[J]. 漯河职业技术学院学报, 2017, 16(02): 27-29.

[16] 向志华, 赖小平. 基于混沌映射的散列函数加密算法分析及设计[J]. 软件, 2019, 40(08): 66-69.

[17] 周悦, 文毅, 杨旭, 等. 基于3DES密码算法的差分能量分析攻击方法的研究[J]. 软件, 2019, 40(09): 1-7.

[18] 吴明航, 许协, 阿超. DES_RSA及其混合算法的加密速度研究[J]. 网络安全技术与应用, 2014(07): 117-119.

[19] 陈侨川. 一种基于DES和RSA算法的混合加密算法[D]. 云南大学, 2015.

[20] CH/T 2014―2016《大地测量控制点坐标转换技术规范》概述[J]. 测绘标准化, 2017, 33(03): 31.

[21] 余章蓉, 董国桥, 王友昆. 基于云南省城市管线数据库坐标转换的实现[J]. 测绘与空间地理信息, 2017(10): 184-187.

猜你喜欢
坐标转换算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于增强随机搜索的OECI-ELM算法
一种改进的整周模糊度去相关算法
一种检测摄像机与被测物间三维轴线求解方法