一种基于数据压缩及加密的远程数据传输方法技术领域
本发明涉及数据压缩及加密技术领域,具体涉及一种基于数据压缩及加密的远程
数据传输方法。
背景技术
随着大数据时代人们对数据挖掘的不断深入,信息安全问题逐渐引起重视。特别
对于企业,数据信息安全性保障有利于其在行业内保持一定的竞争力。由于数据总线负载
及网络带宽的限制,数据越大传输效率越低。为了提高数据上传速率,迫切需要对数据进行
打包压缩处理,在保证数据准确度的前提下,减小数据储存空间。
目前的数据压缩及加密手段大多基于IEEE754浮点数算术标准对数据进行浮点数
转化,但这种算法无法满足数据的不同精度要求及最大程度的压缩。
现有技术中,基于IEEE754浮点数算术标准对数据进行浮点数转化存在的不足体
现在:这种算法无法满足数据的不同精度要求及压缩程度最大化。由于不同数据精度的要
求差异,数据压缩后字节数受限于最小精度,即精度要求越高,压缩后字节数越大。因此,数
据压缩后精度要求低的字节会存在部分无效数据,从而降低了储存空间利用率,导致数据
压缩程度不足。
针对以上不足,本发明旨在满足数据的最小精度要求,而且数据压缩程度最大化。
针对不同的数据精度要求,制定新的适合此类数据的压缩算法,使得满足最小精度的同时
也能保证数据长度最小。
发明内容
本发明公开了一种基于数据压缩及加密的远程数据传输方法,根据不同数据的精
度要求,在数据发送之前进行了压缩及加密处理,制定了新的数据压缩及加密算法,提高数
据上传速率及安全性,而在数据接收端对数据进行解压缩和解密处理,从而保证了数据的
完整性。
本发明的技术方案如下:
一种基于数据压缩及加密的远程数据传输方法,包括以下步骤:
车载端通过数据采集器来采集原始数据并将所采集的原始数据压缩和加密,得到
压缩和加密后的数据,原始数据压缩和加密过程具体包括:
(11)将原始数据按照字节长度和精度要求分类类别进行分类,;
(12)对分类后的数据分别按照顺序结构排列规则,排列后转换为字符串数组,并
添加自定义语句起始标识符“$GUA”符后打包成对应的一帧完成的语句,包括第一类语句、
第二类语句及第三类语句,
第一类语句经过8位精度的压缩及加密处理得到压缩和加密后的第一数据,第二
类语句经过12位精度的压缩及加密处理得到压缩和加密后的第二数据,第三类语句经过28
位精度的压缩及加密处理得到压缩和加密后的第三数据;
3G网络将压缩和加密后的第一、第二和第三数据传输至服务器端;
服务器端将接收到的压缩和加密后的第一、第二和第三数据解压缩和解密过程得
到原始数据,解压缩和解密过程为压缩及加密的逆向过程。
进一步地,8位精度的压缩及加密处理包括将第一类语句通过e+f·2-8计算得出第
一数据,e为指数位,f为小数位。
进一步地,12位精度的压缩及加密处理包括将第二类语句通过(-1)s·(e+f·2
-12)计算得出第二数据,s为符号位,e为指数位,f为小数位。
进一步地,28位精度的压缩及加密处理包括将第三类语句通过2e·(1+f·2-28)计
算得出第三数据,e为指数位,f为小数位。
进一步地,原始数据包括轮胎胎温胎压、轮胎下沉量、汽车加速度、汽车温湿度、数
采控制器时间和汽车经纬度。
进一步地,第一类数据包括汽车时间信息。
进一步地,第二类数据包括轮胎胎温胎压、轮胎下沉量、汽车加速度和汽车温湿
度。
进一步地,第三类数据包括汽车经纬度。
本发明具有以下技术效果:
(1)在满足数据最小精度的前提下,对数据进行充分压缩,提高储存空间利用率。
(2)制定一套算法对原始数据进行加密,提高了数据传输安全性。
(3)数据解密与加密过程是互逆的,保证了原始数据的准确度。
具体实施方式
汽车在行驶过程中,车载数据采集器对轮胎胎温胎压、轮胎下沉量、汽车加速度、
汽车温湿度、数采控制器时间信息和汽车经纬度等原始数据进行实时采集。本发明根据不
同数据的精度要求,在数据发送之前进行了加密处理,制定了新的数据压缩及加密算法,提
高数据上传速率及安全性,而在数据接收端对数据进行解压缩和解密处理,从而保证了数
据的完整性。
基于数据压缩及加密的远程数据传输方法,包括以下步骤:
车载端通过数据采集器来采集原始数据并将所采集的原始数据压缩和加密,得到
压缩和加密后的数据,原始数据压缩和加密过程具体包括:
将原始数据按照字节长度和精度要求分类类别进行分类;
对分类后的数据分别按照顺序结构排列规则,排列后转换为字符串数组,
并添加自定义语句起始标识符“$GUA”符后打包成对应的一帧完成的语
句,包括第一类语句、第二类语句及第三类语句,
第一类语句经过8位精度的压缩及加密处理得到压缩和加密后的第一数据,第二
类语句经过12位精度的压缩及加密处理得到压缩和加密后的第二数据,第三类语句经过28
位精度的压缩及加密处理得到压缩和加密后的第三数据;
3G网络将压缩和加密后的第一、第二和第三数据传输至服务器端;
服务器端将接收到的压缩和加密后的第一、第二和第三数据解压缩和解密过程得
到原始数据,解压缩和解密过程为压缩及加密的逆向过程。
原始数据按照字节长度和精度要求分类类别进行分类具体包括将数据分为整数
部分和小数部分,不同数据小数点后位数不同,精度要求低的数据如数采控制器时间信息
等小数点后保留1位小数,胎温胎压,环境温度、加速度信息等一般保留2位小数,有的数据
如经纬度数据小数点后要求精确到6位,根据不同数据小数点后位数的差异,将原始数据进
行拆分。
原始数据包括轮胎胎温胎压、轮胎下沉量、汽车加速度、汽车温湿度、数采控制器
时间信息和汽车经纬度,第一类数据包括汽车时间信息,第二类数据包括轮胎胎温胎压、轮
胎下沉量、汽车加速度和汽车温湿度,第三类数据包括汽车经纬度。
按照小数位精度要求可以将数据分为12位、28位和8位三种。下面分别对这三种精
度制定了相应的数据压缩和加密及解密算法,如下表所示。不同精度要求的压缩及加密按
照小数位精度要求划分,可以分为8位、12位和28位三种。
其中,8位精度的压缩及加密处理包括将第一类语句通过e+f·2-8计算得出第一数
据,参数如表1所示。
表1 8位精度的压缩及加密的参数
指数位
小数位
e
f
32bit
8bit
其中,12位精度的压缩及加密处理包括将第二类语句通过(-1)s·(e+f·2-12)计
算得出第二数据,参数如表2所示。
表2 12位精度的压缩及加密的参数
符号位
指数位
小数位
s
e
f
1bit
11bit
12bit
如上式以100.375为例,符号位为正s=0,指数位e即为100,相应的11位二进制浮
点数表示为000 0110 0100,类似的小数位f=(100.375-100)/2-12=29+210表示为0110
0000 0000。因此,十进制数100.375就转换成了二进制数,记为:0000 0110 0100 0110
0000 0000。
通过这种算法转换实现了数据的加密处理,同时数据以二进制存储与读取传输效
率更高,也减小了数据长度,达到了数据压缩的效果。
相反的,数据的解密过程与加密过程是可逆的,依据同一种算法还原二进制数即
能得到原始的十进制数。
其中,28位精度的压缩及加密处理包括将第三类语句通过2e·(1+f·2-28)计算得
出第三数据,参数如表3所示。
表3 28位精度的压缩及加密的参数
指数位
尾数位
e
f
4bit
28bit
车载端与服务器端进行远程通信时,车载端的数据经过压缩、加密后通过3G网络
发送给服务器端,服务器端接受数据时经过解密、解压缩后得到原始采集的数据。这种算法
使得服务器端上传历史数据时,大大提高了数据传递效率,比未压缩时传输效率大大增加。
对时间信息采用8位精度的加密算法,首先对字符串数据转化为数值,获取其整数
部分,根据其最大可能达到的时间位数,将其转化为二进制数表示,其次对其小数部分也转
化为二进制表示,为了达到预设精度,需要乘以一个系数,即2-8。
对轮胎胎温胎压、轮胎下沉量、汽车加速度和汽车温湿度采用12位精度的加密算
法,与8位精度不同,这里数据增加一个符号位,用于判断数据的正负,也分为整数和小数两
部分,分别取其二进制数,并配合相应的要求精度,乘以相应系数。
对经纬度信息采用28位小数位精度算法,首先对其整数部分进行判断,能达到最
小的指数位即为e的大小,剩余的尾数部分包含了整数部分和小数部分,用一个系数进行相
乘,保证数据精度。
对以上这些信息按照一定的规则排列后转换为字符串数组,添加相应语句标识符
后打包成一帧完成的语句,再经过加密压缩处理后,通过3G网络发送至服务器端。这样数据
就从原来的字符串压缩为二进制数,占用的空间由原来一秒2067个字节降低为一秒925个
字节,字节减少,数据速率提高,从而实现了数据的压缩及加密过程。
服务器端接收数据时,对相应的数据进行解密,与加密方式相反,解密时首先对字
符串转化为数值,去除标识符后再分别对这些二进制数按照不同的算法转换为不同的字符
串,以“,”标识符为分隔符将数据进行分割,参照加密算法指定的加密协议进行运算,逆向
得到各个数据的加密参数,再将这些二进制数转化为十进制数,得到加密之前的原始数
据,,即时间、经纬度、轮胎胎温胎压、轮胎下沉量、汽车加速度和汽车温湿度数据。这样就实
现了数据的解压缩及解密过程。