APP下载

地理信息野外采集系统加密模块的设计与实现

2019-10-28唐先龙

国土资源导刊 2019年3期
关键词:加密算法数据表非对称

唐先龙

摘 要  湖南省第二测绘院已经成功研发了地理信息野外采集系统,具有通用性强、定位精度高、用户体验好等诸多优点。为了保障存储数据的安全性,本文提出一种基于RSA加密算法的自定义数据格式,重新设计了底层数据存储机制。

关键词  地理信息数据加密;数据加密;数据库设计

中图分类号:TN915 文献标识码:A

Design and Implementation of Encryption Module for Geographic Information Field Acquisition System

Tang Xianlong

(1. Hunan Second Surveying and Mapping Institute, Changsha Hunan  410119)

Abstract: The Second Surveying and Mapping Institute of Hunan Province has successfully developedGeographic Information Field Acquisition System,which has many advantages, such as strong universality, high positioning accuracy,good user experience and so on.In order to ensure the security of data storage, this paper proposes a custom data format based on RSA encryption algorithm, and redesigns the underlying data storage mechanism.

Keywords: geographic Information data encryption; embedded data base encryption; data base design

0  引言

湖南省第二測绘院(以下简称“二院”)已经成功研发了地理信息野外采集系统(以下简称“易采”),并在近三年的实践中证明了易采的价值,能够显著提高野外地理空间数据采集的效率,具有通用性强、定位精度高、用户体验好等诸多特点。为了进一步在推广易采,保证移动端数据的安全性,本文提出基于RSA非对称加密算法与sqlite嵌入式数据库研发数据加密模块。

1  关键技术

1.1 非对称加密算法

非对称加密算法强度复杂、安全性依赖于算法与密钥,能够很好的将信息进行加密[1]。非对称密钥体制有两种密钥,其中一个是公开的称为公钥,另一个是私钥。在确保私钥不泄露的前提下,确保了数据在传输、存放过程中的安全性。目前广泛使用SSL协议也是在此基础上设计而来,是整个互联网安全的基础性算法。RSA是一种常用的非对称加密算法,通过其实现信息的高强度的加密与解密过程。

1.2 sqlite 轻量级嵌入式数据库

移动操作系统中集成了sqlite数据库。sqlite数据库是一款非常流行的嵌入式数据,它不仅性能很好,而且只消耗很少的内存;另外它还是开源的,任何人都可以使用它[2]。采用C语言编写,具有极高的性能。通过其实现数据的高效存储。

2  设计与实现

地理信息系统通常以两种格式之一来存储空间数据:矢量格式或栅格格式。这两种格式是实用且有效的[3]。本文设计一种加密模块,通过RSA(一种非对称加密算法)实现信息的加密与解密,然后将数据存储至设计的数据模型,实现栅格与矢量数据的存储、读取能力。

2.1 栅格数据切片模型设计

栅格数据常用于底图展示,可以将栅格数据预先进行切片。地图切片的目的是为了能够大幅度地提高用户浏览地图信息的速度[4]。切片就是按照一定的规则,把地图切成指定大小的图片进行保存,通过指定区域和层级进行瓦片的调取。从而达到减少存储存储容量,同时提升栅格数据显示速度。

栅格数据切片存储格式,参考了MBtiles规范[5],是基于sqlite嵌入式数据库研发的切片存储方式,该规范已被广泛应用于切片数据存储,使用该格式将充分利用现有程序接口,降低编码实现难度。

栅格数据切片模型由3个数据表(元数据表、切片数据表、切片索引表)、1个视图、2个索引组成,文件后缀定义为yci。

元数据表:用于描述数据的信息,常用语存放数据的生产日期、数学基础、数据精度、数据版本如表1。

切片数据表:用于存放加密后的切片实际数据内容,定义如表2。

切片索引表:用于存放切片行列号位置信息,定义如表3。

切片视图:通过tile_id 将images与 map 表进行关联:形成包含zoom_level,tile_column,tile_row,tile_data 四列的视图。

索引:images表 tile_id 建立 Unique 和 ASC索引,命名为 image_index;map 表通过 zoom_level,tile_column,tile_row 建立 Unique和 ASC,命名为 map_index。

2.2 矢量数据模型设计

矢量数据是由点、线、面三种主要空间要素(geometry)与属性信息(attribute)组成,基于sqlite数据库存放矢量数据,将空间要素与属性要素分解为数据库中对应的列。其中空间要素信息参考了WKB(OGC well-known binary)数据格式,该格式是开放地理空间联盟(OGC)规定的一种二进制格式,可用于空间要素数据在客户端应用程序和SQL数据库之间进行交换。

矢量数据模型由2个数据表(元数据表、空间要素表)、2个索引组成,文件后缀定义为ycv。

元数据表:用于描述数据的元数据信息,用于存放数据的数据类型、加密字段、生产日期、数学基础、数据精度、数据版本。结构如表4。必须包含以下三行数据:

type:描述矢量数据的类型,可选值为(Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon)。

epsg:空间引用标识符,该值由epsg(European Petroleum Survey Group)负责维护并发布坐标参照系统的数据集参数,以及坐标转换描述,常见的有4490/4326/4546/4547/3857等。用相应的数值代表数据的坐标信息。

encode:已加密属性字段,以|符号隔开。

空间要素表:用于存放加密后的空间要素信息,结构如表5。由于空间要素已经被加密,无法建立索引,将导致矢量数据加载速度缓慢,因此应用yc_bound字段提取空间要素的大致范围,并以此建立空间索引,兼顾安全性与加载速度。其他属性字段可增加相应字段。

索引:根据 uuid 列建立 Unique 和 ASC 索引,命名为 uuid_index;根据 yc_bound列建立空间索引。

2.3 数据存储

栅格切片存储,在工作站中通过GDAL将栅格数据进行切片,依次读取单个切片并利用RSA非对称加密算法将切片二进制流进行加密,并将级别、行列号、元数据信息写入对应的数据库表。同时计算切片二进制流md5值,内容相同的切片只会保存一次,进一步降低栅格数据存储容量。

矢量数据存储,读取矢量的空间要素,利用RSA非对称加密算法将其加密,同时按照空间要素类型计算空间范围,并将其他属性信息、元数据一次写入对应的数据表。

2.4 数据读取

栅格切片读取,根据级别、行列号信息,读取对应切片数据,然后tile_data进行解密,得到正常图片二进制流。

矢量数据读取,通过OGR是开源GIS软件GDAL的矢量模块,其定义了一套矢量空间数据模型,提供对多种矢量数据空间格式的读写能力。OGR 采用数据源驱动机制,用户可以方便的将自定义空间数据格式编写成数据驱动[6]。矢量数据的读取需要从yc_bound中预先取出可能在显示范围内的数据,再对空间要素(yc_geom)字段进行解密,以后的流程与常规矢量数据读取无异。

3  结论

本文设计基于RSA非对称加密算法,其加密和解密直接在内存中进行,不产生临时数据,保证了数据在存取的安全性。同时由于采用RSA非对称加密算法,计算复杂度更高,相比传统对称加密算法存在一定的性能损失。由于对数据表进行了较大改动设计,现有软件无法直接使用易采安卓端的生产的数據,需要预先进行转换,接下来考虑通过sqlite底层预留的加密解密接口实现无侵入式改造。

参考文献/References

[1]任彦燕.oracle数据库中RSA算法的应用[J].山西电子技术,2017(6):66-67.

[2]耿佳琪,何文通,陈灿等.野外科考中移动终端自定义地图技术研究于应用[J].科研信息化技术与应用,2016,7(5).

[3]王淑晴,孙翠羽,郑新奇.地理信息系统导论[M].电子工业出版,2016:102.

[4]葛亮,何涛,王均辉,谭盼华.基于GDAL的瓦片切割技术研究[J],测绘与空间地理信息,2014(7):130-132.

[5]马获蕾,汤海凤.Android系统中SQLite数据库的研究[J].电脑知识与技术,2012(28):6243-6245.

[6]陈振,陈荣国,谢炯,张明波.自定义空间数据格式的扩展与应用[J].测绘科学技术报,2011,28(2):138-140.

猜你喜欢

加密算法数据表非对称
北太平洋海温Victoria模态与ENSO年际关系的非对称特征
非对称腹板束设计方法在地铁大跨变宽变高连续梁中的应用
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
交错群与旗传递点本原非对称2(v,k,4)-设计
湖北省新冠肺炎疫情数据表
中国汽柴油批发价格和零售价格的非对称实证研究
教育云平台的敏感信息保护技术研究
一种改进的加密算法在空调群控系统中的研究与实现
基于Jave的AES加密算法的实现