具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本发明实施例中,接入网的形式不限,可以是包括宏基站(Macro Base Station)、微基站(Pico Base Station)、Node B(3G移动基站的称呼)、增强型基站(eNB)、家庭增强型基站(Femto eNB或Home eNode B或Home eNB或HeNB)、中继站、接入点、RRU(Remote RadioUnit,远端射频模块)、RRH(Remote Radio Head,射频拉远头)等的接入网。用户终端可以是移动电话(或手机),或者其他能够发送或接收无线信号的设备,包括用户设备、个人数字助理(PDA)、无线调制解调器、无线通信装置、手持装置、膝上型计算机、无绳电话、无线本地回路(WLL)站、能够将移动信号转换为WiFi信号的CPE(Customer Premise Equipment,客户终端)或移动智能热点、智能家电、或其他不通过人的操作就能自发与移动通信网络通信的设备等。
现有技术中在ASN.1编码前,将坐标数据直接进行加密处理的流程如下:
首先,需要说明的是,ASN.1编码中,定义经度数值的东经为正,西经为负,分辨率为1e-7°;定义纬度数值,北纬为正,南纬为负,分辨率为1e-7°。
如图1中,其示出了东经93.8°(E93.8度)的加密和编码处理流程。其中,根据经度分辨率,E93.8度对应的十进制数为938000000,首先将938000000转换为长度为N的bit串;将长度为N的bit串作为明文转换为另一长度为N的bit串(密文),输入转换为长度为N的bit串(密文)转换为整数;进一步的,进行ASN.1 UPER编码,检查密文是否未超出min和max边界,在未超出边界时,将密文进行编码(input-min),转换为二进制。
可以理解,加密前的经度Longitude数据的有效范围是[-1799999999,1800000001],ASN.1编码器可以为其进行ASN.1编码。然而,如果将上述坐标原始值(938000000)进行加密,根据加密原理,bit内容尽量乱序迭代,加密后的密文数据将在32bit二进制数据所能表达的任一个取值,即[0,2^32-1],超出了原始的Longitude所在的[-1799999999,1800000001]这个取值范围,从而落入ASN.1编码的无效区间,那么导致ASN.1编码器无法工作。如图2中可以看出,加密后的密文取值范围会占满2^N的空间,使得其超出了经度原始定义的取值范围,不符合ASN.1编码输入要求,导致无法编码或者错误编码。
具体地,本发明的实施例提供了一种坐标处理方法,解决了现有技术中V2X系统在引入坐标加密操作时,加密后的加密坐标取值可能超出原始坐标有效区间,进而导致ASN.1编码器输入不合法,引发传输失败的问题。
第一实施例
如图1所示,本发明的实施例提供了一种坐标处理方法,应用于发送端,可选的,发送端可以包括但不限于:车载单元OBU、路侧单元RSU、便携终端VRU、云控平台,应用服务器、地理位置服务器、智能网联汽车等。方法具体包括以下步骤:
步骤11:根据第一预设规则,将第一坐标数据转换为第二坐标数据;其中,所述第一坐标数据为待加密的原始坐标数据;所述第二坐标数据对应的二进制比特位数比所述第一坐标数据对应的抽象语法记法ASN.1不对齐压缩编码规则UPER编码比特位数少至少1位;
本步骤中,第一预设规则包括但不限于:预设计算规则、预设处理规则或者是预设映射表等。
其中,对于第二坐标数据对应的二进制比特位数,若第二坐标数据为十进制数,则第二坐标数据对应的二进制比特位数为将第二坐标数据由十进制转换为二进制后对应的二进制比特位数。
对于第一坐标数据对应的ASN.1 UPER编码比特位数。根据ASN.1 UPER编码规则可知,对于INTEGER[a,b]上下限固定的整形数据单元,固定采用N=log(b-a+1,2)取整个bit进行编码。
示例性的,以第一坐标数据为经度Longitude坐标数据为例,若ASN.1定义的坐标最小值为-1799999999,坐标最大值为1800000001,即取值的数量为1800000001-(-1799999999)+1=3600000001,则需要32bit才能表达。根据ASN.1 UPER编码规则,将其固定编码为长度为32的二进制bit串。
示例性的,以第一坐标数据为纬度Latitude坐标数据为例,若ASN.1定义的坐标最小值为-900000000,坐标最大值为900000001,即取值的数量为900000001-(-900000000)+1=1800000002,需要31bit才能表达。根据ASN.1UPER编码规则,将其固定编码为长度为31的二进制bit串。
步骤12:将所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理,得到长度为所述预设比特长度的二进制密文作为第三坐标数据;其中所述预设比特长度比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位;
示例性的,第一坐标数据对应的ASN.1 UPER编码比特位数为32bit,且步骤11中得到的第二坐标数据(明文)长度30bit,将第二坐标数据的高位补0,则按照预设比特密文为31bit进行加密处理,得到31bit的第三坐标数据(密文)。
其中,在步骤11中转换得到的第二坐标数据为二进制数时,第二坐标数据对应的二进制数可以为第二坐标数据本身所对应的二进制比特位数,也可以为从二进制的第二坐标数据中截取的8的倍数的比特位数。
例如,若步骤11中得到的第二坐标数据为30bit,则步骤12中进行加密处理的第二坐标数据对应的二进制数可以为30bit的第二坐标数据,即对第二坐标数据的全部30bit进行加密,不要求第二坐标数据对应的二进制数比特位数是8的倍数;也可以为从30bit的第二坐标数据中选取的最低位中的24bit数据,即只对低位的24bit数据进行加密处理,即对第二坐标数据的整字节(字节长度为8的倍数)进行加密,其余比特为不加密的明文。
需要指出,按照预设比特长度对第二坐标数据对应的二进制数进行加密,得到预设比特长度的二进制密文,指加密过程中不进行超出预设比特长度的bit位的填充。
其中,该实施例中,预设比特长度比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位,保证加密后的第二坐标数据的长度不超出第一坐标数据对应的ASN.1UPER编码比特位数。
进一步的,在另一实施例中,所述预设比特长度为8的整数倍。例如,采用支持明文长度为整字节(字节数为8的整数倍)的加密算法,从压缩后的数据中选取整字节的bit流,如从31b中选取24b),对其进行长度不变的加密。
步骤13:将所述第三坐标数据与ASN.1定义的坐标最小值相加,得到第四坐标数据;
本步骤中,通过将第三坐标数据与ASN.1定义的坐标最小值相加,得到符合ASN.1编码有效范围的第四坐标数据,以进行下述步骤14的编码操作。
步骤14:将所述第四坐标数据进行ASN.1 UPER编码,生成编码数据;
该步骤中,根据ASN.1的语法定义,将第四坐标数据进行ASN.1 UPER编码,生成二进制的编码数据。
步骤15:向接收端发送所述编码数据。
该实施例中,将待加密的原始的坐标数据(如经度或纬度坐标数据)的取值(即第一坐标数据)根据第一预设规则,进行转换处理,使转换得到的第二坐标数据所需的编码比特位数量相比现有第一坐标数据的编码比特位数量减少至少1个bit。进一步的,对bit位数减少的第二坐标数据按照预设比特长度进行加密操作,生成与所述预设比特长度等长的密文(第三坐标数据),如图4,加密后的第二坐标数据始终处于ASN.1编码的有效编码范围内;进一步将所述第三坐标数据与ASN.1定义的坐标最小值相加,得到第四坐标数据后;将第四坐标数据进行ASN.1 UPER编码,生成编码数据并对外发送。而收端则进行与发送端相应的逆操作即可恢复原始的第一坐标数据。这样,能够保证加密坐标取值不超出原始坐标的有效区间,避免引发传输失败的问题。而且该方案的处理过程简单,易于实现,使用标准的加密算法即可实现,不涉及国内目前还未完成标准化的FPE加密算法。
在一实施例中,上述步骤11可以包括以下两种方式:
方式一:将所述第一坐标数据和预设基准坐标按照第一预设计算规则,计算得到所述第二坐标数据。具体的,方式一可以包括以下其中一种:
第1种:计算所述第一坐标数据与第一预设基准坐标的第一差值,将所述第一差值作为所述第二坐标数据;其中,所述第一预设基准坐标小于或者等于ASN.1定义的目标地理区域的坐标最小值,且大于或者等于ASN.1定义的坐标最小值;目标地理区域的坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位;
该实施例中,目标地理区域指某个省份区域、某个国家区域(如中国区域)、某个洲(如亚洲区域)等地理区域。坐标包括经度坐标或者纬度坐标。ASN.1定义的坐标最小值可以包括如全球经度坐标最小值、全球纬度坐标最小值、亚洲经度坐标最小值、亚洲纬度坐标最小值、欧洲经度坐标最小值、欧洲纬度坐标最小值等,但不以此为限,可根据实际情况选择设置。该实施例将待加密的第一坐标数据首先减去第一预设基准值,能够实现得到的第二坐标数据对应的二进制位数压缩至少1bit。
示例性的,以目标地理区域为中国区域,ASN.1定义的坐标最小值为全球经度坐标最小值,ASN.1定义的坐标最大值为全球经度坐标最大值为例,根据中国经纬度区域的上下限的特点,下面,通过表1和2进行分析:
首先针对经度,如下表1所示
表1.经度分析表
上表1可以看出,ASN.1定义的全球经度的十进制整数取值的最小值为﹣1799999999,最大值为1800000001;东经73度到东经180度这个范围可以完整包含中国区域所需的经度坐标,沿用现有技术中ASN.1定义的分辨率1e-7度(即1*10^-7度),东经73度实际对应ASN.1语法的73×10^-7,东经180度实际对应ASN.1语法的180×10^-7,则此段区域内的所有经度值的总数为630000001,所需的二进制编码最大为log(630000001,2)取整,为30bit。所以如果将中国区域内的经度取值减去一个基准值(第一预设基准坐标)得到第一差值,例如,该基准值设置为东经73度,然后对该第一差值进行二进制编码,则产生的bit数最多为30b,比目前的经度编码32bi少2bit,达到数据bit压缩的效果。
应该指出,上述示例以第一坐标数据为中国区域的经度坐标、第一预设基准坐标为中国区域经度坐标最小值为示例进行的说明,可以理解,针对目标地理区域为西半球的某个国家区域,如加拿大等。第一坐标数据属于西经度范围的坐标,第一预设基准坐标取值与中国区域的取值原理相同,也需要满足小于或者等于ASN.1定义的该目标地理区域的经度坐标最小值,且大于或者等于ASN.1定义的经度坐标最小值;目标地理区域的经度坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位。
同样,纬度坐标也可以做上述处理,分析如下表2所示:
表2.纬度分析表
上表2可以看出,ASN.1定义的全球纬度的十进制整数取值的最小值为﹣900000000,最大值为900000000;北纬3度到北纬54度这个范围可以完整包含中国区域所需的纬度坐标,沿用现有技术中ASN.1定义的分辨率1*10^-7度,则此段区域内的所有纬度值的总数为510000001,所需的二进制编码最大为log(510000001,2)取整,为29bit。所以如果将中国区域内的纬度取值减去一个基准值(第一预设基准坐标)得到差值,例如该基准值设置为北纬3度;然后对差值进行二进制编码,则产生的bit数最多为29b,比目前的纬度编码31bit少2bit,达到了数据bit压缩的效果。
应该指出,上述示例以第一坐标数据为中国区域的纬度坐标、第一预设基准坐标为中国区域纬度坐标最小值为示例进行的说明,可以理解,针对目标地理区域为南半球的某个国家区域,如巴西等。第一坐标数据属于南纬度坐标,第一预设基准坐标取值与中国区域的取值原理相同,也需要满足小于或者等于ASN.1定义的该目标地理区域的纬度坐标最小值,且大于或者等于ASN.1定义的纬度坐标最小值;目标地理区域的纬度坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位。
第2种:计算所述第一坐标数据的相反数与第二预设基准坐标的第二差值,将所述第二差值作为所述第二坐标数据;
示例性的,以目标地理区域为中国区域,ASN.1定义的坐标最小值为全球经度/纬度坐标最小值,ASN.1定义的坐标最大值为全球经度/纬度坐标最大值为例,根据中国经纬度区域的上下限的特点,下面,通过表3和4分别对经度和纬度分析如下:
首先针对纬度,如下表3所示:
表3.经度分析表
目前,经度的ASN.1定义是:西经为负,东经为正,ASN.1编码下限值是西经的最大值。经度范围INTEGER[-1799999999,1800000001]。中国所处的经度区域为东经73.65~135.05,按照现有技术,不得不总是使用较大的数值进行编码表示。而如果将经度方向调换,比如东经80度,正负号取反则可变为西经80度。则中国经度区域可以转换为:西经-135.05度~西经-73.65度。那么从西经-179.9999999度到西经-73度的这段区域完全可以涵盖中国所处区域,其所需的取值范围是[-1799999999,-730000000],总共1070000000个数值,用30bit就可以表示,相比现有技术的32bit,减少了2bit,实现了数据bit压缩。
应该指出,上述示例以第一坐标数据为中国区域的经度坐标、第二预设基准坐标为全球经度坐标最小值为示例进行的说明,该示例中第二预设基准坐标优选为-1799999999。
同样的,纬度也可以用正负号取反的方法达到压缩取值范围和编码bit数量的目的。分析见下表4。
表4.纬度分析表
目前,纬度的ASN.1定义是:南纬为负,北纬为正,ASN.1编码下限值是南纬的最大值。纬度范围INTEGER[-900000000,900000001]。中国所处的经度区域为北纬3.86~53.55,按照现有技术,不得不总是使用较大的数值进行编码表示。而如果将纬度方向调换,比如北纬45度,正负号取反后变为南纬45度。则中国经度区域可以转换为:南纬-3.86度~-53.55度。那么从南纬-90度到南纬-3度的这段区域完全可以涵盖我国所处区域,其所需的取值范围是[-900000000,-30000000],总共870000001个数值,用30bit可以表示。相比现有技术的31bit,减少了1bit,实现了数据bit压缩。
应该指出,上述示例以第一坐标数据为中国区域的纬度坐标、第二预设基准坐标为全球纬度坐标最小值为示例进行的说明,该示例中第二预设基准坐标优选为-900000000。
第3种:计算第三预设基准坐标与所述第一坐标数据的第三差值,将所述第三差值作为所述第二坐标数据;其中,所述第三预设基准坐标大于或者等于ASN.1定义的目标地理区域的坐标最大值,且小于或者等于ASN.1定义的坐标最大值。
示例性的,以目标地理区域为中国区域,第一坐标数据为中国区域的经度坐标,ASN.1定义的坐标最小值为全球经度坐标最小值,ASN.1定义的坐标最大值为全球经度坐标最大值为例,第三预设基准坐标可以为中国区域的经度坐标最大值(1360000000),则中国区域内的所有经度值范围为[0,630000001],所需的二进制编码最大为log(630000001,2)取整,为30bit;或者第三预设基准坐标可以为全球经度坐标最大值(1800000001),则中国区域内的所有经度值范围为[440000000,1070000001],所需的二进制编码最大为log(1070000001,2)取整,为30bit。比目前的经度编码32bi少1bit,达到数据bit压缩的效果。
为了便于理解,下面进一步结合图5和6,以中国的经度坐标数据为例,对上述方式二进行具体的示例性介绍。
如图5中,中国的经度范围约是(东经73.66,东经135.05),因此图5中所示的中国区域的经度最小值为Min_c=730000000,中国区域的经度最大值为Max_c=1360000000(c代表china)。
如图5所示,根据ASN.1 UPER编码规则,编码后的二进制数据其实就是二进制形式表达的原始经度值与定义的最小值(Min=-1799999999)之间的偏差值。从图中可以看出,中国区域的经度与最小值(Min=-1799999999)的偏差,已经超过了2^31bit所能表示的范围。所以导致编码后的bit数目一定是32。
具体的,针对中国区域的纬度坐标,可以给出如下几种方式:
方式1(对应上述方式二中的第1种):第一预设基准坐标优选为中国区域最小值Min_c。
让ASN.1编码去表达原始经度X(对应第一坐标数据)与中国区域最小值Min_c之间的偏移,即让ASN.1编码去表达“X-Min_c”这个量,可以看出,此量完全可以控制在31个bit的表述范围。此时,ASN.1编码器产生的32bit二进制数据,至少有一个高位bit(MSB)取值为0。
方式2(对应上述方式二中的第2种):第二预设基准坐标优选为全球经度坐标最小值Min
让ASN.1编码去表达原始经度X(对应第一坐标数据)取负号后,与全球经度坐标最小值Min之间的偏差,即让ASN.1编码去表达“(-1)*X-Min”这个量,可以看出,此量完全可以控制在31个bit的表述范围。此时,ASN.1编码器产生的32bit二进制数据,至少有一个高位bit(MSB)取值为0。
方式3(对应上述方式二中的第3种):第三预设基准坐标优选为全球经度坐标最大值Max。
让ASN.1编码去表达全球经度坐标最大值Max与原始经度X(相当于第一坐标数据)之间的偏差,即让ASN.1编码去表达“Max-X”这个量,可以看出,此量完全可以控制在31个bit的表述范围。此时,ASN.1编码器产生的32bit二进制数据,至少有一个高位bit(最高有效位MSB,即最高比特位)取值为0。
方式4(对应上述方式二中的第3种):第三预设基准坐标优选为中国区域最大值Max-c。
让ASN.1编码去表达中国区域最大值Max-c(Max-c=1360000000,)与原始经度X(第一坐标数据)之间的偏差,即让ASN.1编码去表达“Max_c-X”这个量,可以看出,此量完全可以控制在31个bit的表述范围。此时,ASN.1编码器产生的32bit二进制数据,至少有一个高位bit(MSB)取值为0。
需要说明的是,上述实施例中Min_c和Max_c的具体取值均为示例,其他任何小于中国实际最小经度的Min_c值也可以达到相同的效果。其他任何大于中国实际最大经度的Max_c值也可以达到相同的效果。
如图6中,中国的纬度范围约是(北纬3度,北纬54度),因此图6中所示的中国区域的纬度最小值为Min_c=30000000,中国区域的纬度最大值为Max_c=540000000。
针对纬度的方案与针对经度的方案原理相同,只是Min、Max、Min_c、Max_c的取值有所不同。
如图6所示,根据ASN.1 UPER编码规则,编码后的二进制数据其实就是二进制形式表达的原始纬度值与定义的最小值(Min=-900000000)之间的偏差值。从图中可以看出,中国区域的纬度与最小值(Min=-900000000)的偏差,已经超过了2^30bit所能表示的范围。所以导致编码后的bit数目一定是31。
具体的,针对中国区域的纬度坐标,可以给出如下几种方式:
方式1(对应上述方式二中的第1种):第一预设基准坐标优选为中国区域纬度最小值Min_c。
让ASN.1编码去表达原始纬度X(对应第一坐标数据)与中国区域纬度最小值Min_c之间的偏移,即让ASN.1编码去表达“X-Min_c”这个量,可以看出,此量完全可以控制在30个bit的表述范围。此时,ASN.1编码器产生的31bit二进制数据,至少有一个高位bit(MSB)取值为0。
方式2(对应上述方式二中的第2种):第二预设基准坐标优选为全球纬度坐标最小值Min。
让ASN.1编码去表达原始纬度X(对应第一坐标数据)取负号后,与全球纬度坐标最小值Min之间的偏差,即让ASN.1编码去表达“(-1)*X-Min”这个量,可以看出,此量完全可以控制在30个bit的表述范围。此时,ASN.1编码器产生的31bit二进制数据,至少有一个高位bit(MSB)取值为0。
方式3(对应上述方式二中的第3种):第三预设基准坐标优选为全球纬度坐标最大值Max。
让ASN.1编码去表达全球纬度坐标最大值Max与原始纬度X(相当于第一坐标数据)之间的偏差,即让ASN.1编码去表达“Max-X”这个量,可以看出,此量完全可以控制在31个bit的表述范围。此时,ASN.1编码器产生的32bit二进制数据,至少有一个高位bit(MSB)取值为0。
方式4(对应上述方式二中的第3种):第三预设基准坐标优选为中国区域纬度最大值Max-c。
让ASN.1编码去表达中国区域纬度最大值Max-c(Max-c=540000000,)与原始经度X(第一坐标数据)之间的偏差,即让ASN.1编码去表达“Max_c-X”这个量,可以看出,此量完全可以控制在30个bit的表述范围。此时,ASN.1编码器产生的31bit二进制数据,至少有一个高位bit(MSB)取值为0。
需要说明的是,上述实施例中Min_c和Max_c的具体取值均为示例,其他任何小于中国实际最小经度的Min_c值也可以达到相同的效果。其他任何大于中国实际最大经度的Max_c值也可以达到相同的效果。
方式二:将第一坐标数据减去第四预设基准坐标得到第四差值,将所述第四差值对应的二进制数的最低X位进行截除,将所述第四差值的剩余位数作为所述第二坐标数据;其中,X至少为1。
示例性的,以目标地理区域为中国区域,第一坐标数据为中国区域的经度坐标,ASN.1定义的坐标最小值为全球经度坐标最小值,ASN.1定义的坐标最大值为全球经度坐标最大值为例,第四预设基准坐标可以取值为ASN.1定义的坐标最小值为全球经度坐标最小值,即-1790000000。
示例性的,将第一坐标数据减去第四预设基准坐标得到第四差值,可以理解为将对原始的第一坐标数据进行ASN.1编码后形成长度为M的二进制数据A(第四差值),将数据A(第四差值)最低X位进行截短,X>=1,保留第四差值剩余的M-X位。例如,第四差值的二进制表达为:0000 0000 0000 1111 1111 0000 0000 1111,X为3,则将第四差值的二进制最低3位进行截除,得到第二坐标数据为:0000 0000 0000 1111 1111 0000 0000 1。而在收端恢复时,将M-X位二进制数据的低端补X个0,恢复其长度为M。
需要说明的是,这种方法会导致坐标分辨率的下降。如果截短1bit,则意味着坐标分辨率从之前的1*10^-7度,降低为2*10^-7度。如果截短2bit,则意味着坐标分辨率从之前的1*10^-7度,降低为4*10^-7度。
在一实施例中,上述步骤12,可以包括以下两种情况:
情况一:采用对称加密算法或者非对称加密算法,对所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理。
其中,对称加密算法包括但不限于:中国商用密码分组密码算法SM4(对应的国家标准为GB/T 32907)、DES(Data Encryption Standard)、AES(Advanced EncryptionStandard),例如SM4下的OFB(Output Feedback,输出反馈)/CFB(cipher feedback,密钥反馈)等模式,在采用OFB/CFB等模式以及DES、AES时,将IV值也分发给各个收发设备,实现收发设备在加解密时使用相同的IV值,另外IV值可以单独分发,也可以和对称密钥一起分发。
具体的,在一实施例中,该情况一中在采用对称加密算法进行加密处理时,所用初始转化向量IV值是和接收端预先约定的固定IV值;或者是预先配置的所述IV值;或者是从第三方获取的所述IV值;或者是按照约定规则,根据所述编码数据所在的空口消息中携带的数据得到的所述IV值;或者是根据加密密钥与IV值的映射关系确定的所述IV值。
在另一实施例中,该情况一中在采用对称加密算法进行加密处理时,所用初始转化向量IV值是根据第一信息确定的;其中,所述第一信息至少包括以下其中两项:预配置参数、第三方发送的参数、所述编码数据所在的空口消息中携带的数据、加密密钥。
需要指出,上述编码数据所在的空口消息中携带的数据包括:消息的序列号msgcount、发送端的临时id、V2X消息类型,如BSM消息类型、MAP消息类型等。其中,坐标所在的哪种类型的V2X消息,则使用与该类型对应的IV值。
情况二:采用支持明文长度为整字节的加密算法(如果压缩后的数据长度为非整字节,则从中选取整字节的bit流,如从31b中选取24b),对其进行长度不变的加密。其中选取时可以:都选择最高的bit位、都选择最低的bit位,或者高位和低位之间组合选择,在接收端进行对应的恢复即可。
第二实施例
如图12所示,本发明的第二实施例提供了一种坐标处理方法,应用于接收端,其中,接收端可以包括但不限于:车载单元OBU、路侧单元RSU、便携终端VRU、云控平台,应用服务器、地理位置服务器、智能网联汽车等。方法具体包括以下步骤:
步骤21:接收发送端发送的编码数据;
步骤22:对所述编码数据进行ASN.1 UPER解码处理,得到第四坐标数据;
其中,该编码数据为发送端针对原始的第一坐标数据进行转换、加密、编码后得到的二进制编码数据。对编码数据进行解码后,则得到十进制的整型值第四坐标数据。
步骤23:将所述第四坐标数据与ASN.1定义的坐标最小值相减,得到第三坐标数据;
该步骤中,按照与发送端相逆的操作,将第四坐标数据与ASN.1定义的坐标最小值相减,得到的数据进行二进制转换后即可得到密文第三坐标数据。
步骤24:将所述第三坐标数据按照预设比特长度进行解密处理,得到第二坐标数据;其中所述预设比特长度比第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位,所述第一坐标数据为待解密的原始坐标数据;
该步骤中,预设比特长度为与发送端预先约定的比特长度,按照该预设比特长度对第三坐标数据进行解密处理,即可恢复得到第二坐标数据。
需要说明的是,在解密前,如密文第三坐标数据的二进制比特长度小于预设比特长度,则高位填充0。如果超出预设比特长度,则高位忽略即可。
在另一实施例中,所述预设比特长度为8的整数倍。即发送端采用的是整字节加密算法,接收端对应按照预设比特长度解密即可。
步骤25:根据第二预设规则,将所述第二坐标数据转换为第一坐标数据;其中,所述第二坐标数据的对应的二进制比特位数比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位。
该步骤中,第二预设规则是与第一预设规则相应的规则,保证可以将第二坐标数据转换为第一坐标数据,具体第二坐标数据包括但不限于:预设计算规则、预设处理规则或者是预设映射表等。
上述实施例中,在发送端的坐标处理过程满足不超出原始坐标的有效区间,避免引发传输失败的问题的情况下,接收端采用与发送端相逆的操作即可恢复出原始的第一坐标数据。
在一实施例中,上述步骤25可以包括以下两种方式:
方式一:将所述第二坐标数据和预设基准坐标按照第二预设计算规则,计算得到所述第一坐标数据
具体的,对应与发送端的相逆的转换过程,方式一可以包括以下实现方式中的其中一种:
第1种:计算所述第二坐标数据与第一预设基准坐标的第一和值,将所述第一和值作为所述第一坐标数据;其中,所述第一预设基准坐标小于或者等于ASN.1定义的目标地理区域的坐标最小值,且大于或者等于ASN.1定义的坐标最小值;目标地理区域的坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位;
第2种:计算所述第二坐标数据与第二预设基准坐标的第二和值,将所述第二和值的相反数作为所述第一坐标数据;
第3种:计算第三预设基准坐标与所述第二坐标数据的第五差值,将所述第五差值作为所述第一坐标数据;其中,所述第三预设基准坐标大于或者等于ASN.1定义的目标地理区域的坐标最大值,且小于或者等于ASN.1定义的坐标最大值。
示例性的,以目标地理区域为中国区域,第一坐标数据为中国区域的经度坐标,ASN.1定义的坐标最小值为全球经度坐标最小值,ASN.1定义的坐标最大值为全球经度坐标最大值为例,第二坐标数据与第一坐标数据的转换过程进行示例性说明。
其中,中国区域的经度范围约是(东经73.66,东经135.05),因此中国区域的经度最小值为Min_c=730000000,中国区域的经度最大值为Max_c=1360000000,如图5中所示。
方式1(对应上述步骤25中方式一中的第1种):第一预设基准坐标优先为中国区域最小值Min_c。
原始经度X(对应第一坐标数据)=第二坐标数据与中国区域最小值Min_c之和,即X=第二坐标数据+Min_c。
方式2(对应上述步骤25中方式一中的第2种):第二预设基准坐标优选为全球经度坐标最小值Min。
原始经度X==(-1)*(第二坐标数据-Min)。
方式3(对应上述步骤25中方式一中的第3种):第三预设基准坐标优选为全球经度坐标最大值Max。
原始经度X=Max-第二坐标数据。
方式4(对应上述步骤25中方式一中的第3种):第三预设基准坐标优选为全球经度坐标最大值Max。
原始经度X=Max_c-第二坐标数据。
需要说明的是,上述实施例中Min_c和Max_c的具体取值均为示例,其他任何小于中国实际最小经度的Min_c值也可以达到相同的效果。其他任何大于中国实际最大经度的Max_c值也可以达到相同的效果。
针对纬度的方案与针对经度的方案原理相同,只是Min、Max、Min_c、Max_c的取值有所不同。
方式二:将二进制的第二坐标数据的最低位后面补X个比特位的0,得到第四差值;其中,X至少为1;计算所述第四差值与第四预设基准坐标的第三和值,将所述第三和值作为所述第一坐标数据。
示例性的,以目标地理区域为中国区域,第一坐标数据为中国区域的经度坐标,ASN.1定义的坐标最小值为全球经度坐标最小值,ASN.1定义的坐标最大值为全球经度坐标最大值为例,第四预设基准坐标可以取值为ASN.1定义的坐标最小值为全球经度坐标最小值,即-1790000000。
示例性的,解码得到的二进制的第二坐标数据为:0000 0000 0000 1111 11110000 0000 1,X等于3,则将二进制的第二坐标数据的最低位后面补X个比特位的0,得到第四差值为:0000 0000 0000 1111 1111 0000 0000 1000,进一步将二进制的第四坐标数据转换为十进制后与-1790000000求和,即可恢复得到第一坐标数据。
在一实施例中,上述步骤24,可以包括以下两种情况:
情况一:采用与发送端的对称加密算法或者非对称加密算法相应解密算法,对所述第三坐标数据按照预设比特长度进行解密处理。
其中,对称加密算法包括但不限于:SM4、DES、AES。
在一实施例中,该情况一中解密处理时所用初始转化向量IV值是和接收端预先约定的固定IV值;或者是预先配置的所述IV值;或者是从第三方获取的所述IV值;或者是按照约定规则,根据所述编码数据所在的空口消息中携带的数据得到的所述IV值;或者是根据加密密钥与IV值的映射关系确定的所述IV值。
在另一实施例中,该情况一中解密处理时所用初始转化向量IV值是根据第一信息确定的;其中,所述第一信息至少包括以下其中两项:预配置参数、第三方发送的参数、所述编码数据所在的空口消息中携带的数据、加密密钥。
需要指出,上述编码数据所在的空口消息中携带的数据包括:msgcount、id,crc等。
情况二:采用与发送端的整字节加密算法相应的解密算法,对所述第三坐标数据按照预设比特长度进行解密处理。
例如,若密文的第三坐标数据的二进制比特长度为31bit,则相应于发送端的整字节选取方式,如都选择最高的bit位、都选择最低的bit位,或者高位和低位之间组合选择,如按照预设比特长度为24bit进行解密。
需要说明的是,预设基准坐标(如Min、Max、Min_c、Max_c)的配置方式可以为发送端与接收端预先配置的,或者也可为由发送端确定,并发送给接收端,不以此为限。
需要指出,上述方案中,在发送端涉及多个处理步骤包括:范围压缩处理、加密处理、ASN.1编码等。这些步骤在发送端的执行顺序可以包括多种方式,如上述实施例中的先加密后编码的方式。另外,还可以按照先压缩、再编码,再加密的处理流程,即先进行用于bit压缩的数据处理,然后进行ASN.1编码,再将编码后的坐标对应的bit进行加密处理,即将ASN.1编码后的码流中的明文用密文替换。这种顺序中,在ASN.1编码前,将待加密的经度值进行上述步骤11中的方式一和方式二所需的操作,然后对其进行ASN.1编码,然后从编码后的ASN.1二进制码流中找到经度对应的32bit(根据ASN.1PER编码规则,经度编码为固定的32bit),然后提取其低30b(或31b,取决于压缩方案)作为明文,进行长度不变的加密运算后生成密文,ASN.1二进制码流中将30b(或31b,取决于压缩方案)长度的密文替换上述ASN.1编码后的码流中的明文。
为了便于理解,下面针对流程图8至图12,对发送端和接收端的坐标处理流程进行介绍。
一、以目标地理区域为中国区域,第一坐标数据为中国区域的经度坐标,ASN.1定义的坐标最小值为全球经度坐标最小值,ASN.1定义的坐标最大值为全球经度坐标最大值为例,对发送端和接收端的坐标处理流程进行介绍。
示例1
如图8中,对经度坐标加密,采用偏转压缩(即步骤11中方式一中的第1种)。发端处理顺序:先加密后编码。具体的,发端和收端的处理流程包括:
1、发送端包括:
步骤811,待加密的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000];
步骤812,输出=输入值-基准经度的十进制整形值INTEGER(即730000000);
步骤813,对输入值进行ASN.1编码
步骤814,从ASN.1码流中提取经度对应的32bit长度二进制数据,取最低的30bit,输出长度为30bit的二进制数据;
步骤815,输入的长度为30bit的二进制数据作为明文,按照长度30b进行加密运算,输出长度为30bit的二进制数据密文;
步骤816,用输入的长度为30bit的二进制数据代替ASN.1码流中经度对应的32bit长度二进制数据的最低30bit。
2、接收端包括:
步骤821,从ASN.1码流中提取经度对应的32bit长度二进制数据,取最低的30位,输出长度为30b的二进制数据;
步骤822,输入的长度为30bit的二进制数据作为密文,按照长度30b进行解密运算,输出长度为30bit的二进制数据明文;
步骤823,用输入的长度为30bit的二进制数据代替ASN.1码流中经度对应的32bit长度二进制数据的最低30bit;
步骤824,ASN.1译码,输出经度的十进制整形值INTEGER,其合法范围是[-1799999999,1800000001];
步骤825,输出=输入值+基准经度的十进制整形值INTEGER(即730000000);
步骤826,解密完成的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000]。
上述实施例中,将原始坐标减去基准,即得到相对于基准的偏移量,在中国区域的范围下,其有效取值范围较小,可用30bit表达。然后对此偏移量进行加密操作,加密后的密文作为新的偏移量仍然需要加上现有ASN.1编码定义的经度下限值,以此恢复了经度坐标作为ASN.1编码的输入格式。后续即正常执行ASN.1编码过程。
其中,基准经度的十进制整形值INTEGER(即730000000)的取值为示例,具体选取原则为能够涵盖我国国土的最西侧的经度坐标。
示例2
如图9中,对经度坐标加密,采用偏转压缩(即步骤11中方式一中的第1种)。发端处理顺序:先压缩,再编码,再加密。具体的,发端和收端的处理流程包括:
1、发送端包括:
步骤911,待加密的原始纬度的十进制整形值INTEGER,范围是[-900000000,900000001];
步骤912,输出=输入值-基准纬度的十进制整形值INTEGER(即30000000);
步骤913,十进制转为二进制,若不足30bit则高位补0至30bit,输出长度为30b的二进制数据;
步骤914,输入的长度为30bit的二进制数据作为明文,按照长度30bit进行加密运算,输出长度为30bit的二进制数据密文;
步骤915,二进制转为十进制,作为输出;
步骤916,输出=输入值+原始ASN.1纬度的起点值(即-900000000),输出类型为INTEGER整数,范围是[-900000000,900000001];
步骤917,对输入值进行ASN.1编码。
2、接收端包括:
步骤921,纬度值ASN.1译码,输出十进制整形值INTEGER,其合法范围是[-900000000,900000001];
步骤922,输出=输入值-原始ASN.1纬度的起点值(即-900000000),输出类型为INTEGER整数;
步骤923,十进制转为二进制,作为输出(长度最多为31bit);
步骤924,输入的二进制数据,若不足30bit则高位补0至30bit,若超出32bit则仅保留低30bit,若正好30bit则不变。输出长度为30b的二进制数据;
步骤925,输入的长度为30bit的二进制数据作为密文,按照长度30bit进行解密运算,输出长度为30bit的二进制数据明文;
步骤926,二进制转换为十进制,作为输出;
步骤927,输出=输入值+基准纬度的十进制整形值INTEGER(即30000000);
步骤928,解密完成的原始纬度的十进制整形值INTEGER,范围是[-900000000,900000001]。
上述实施例中,基准经度的十进制整形值INTEGER(即730000000)的取值为示例,具体选取原则为能够涵盖我国国土的最西侧的经度坐标。
需要说明的是,图8和图9中两种处理流程,发端的处理方式是等价的,收端的处理方式也是等价的,因此是完全可以互换使用。
示例3
如图10中,对经度坐标加密,采用取反压缩(即步骤11中方式一中的第2种)。发端处理顺序:先加密后编码。具体的,发端和收端的处理流程包括:
1、发送端包括:
步骤1011,待加密的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000];
步骤1012,输出=输入值*(-1)
步骤1013,输出=输入值-原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1014,十进制转为二进制,若不足30bit则高位补0至30bit,输出长度为30b的二进制数据;
步骤1015,输入的长度为30bit的二进制数据作为明文,按照长度30b进行加密运算,输出长度为30b的二进制数据密文;
步骤1016,二进制转为十进制,作为输出;
步骤1017,输出=输入值+原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数,范围是[-1799999999,1800000000];
步骤1018,对输入值进行ASN.1编码。
2、接收端包括:
步骤1021,经度值ASN.1译码,输出十进制整形值INTEGER,其合法范围是[-1799999999,1800000001];
步骤1022,输出=输入值-原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1023,十进制转为二进制,作为输出(长度最多为32bit);
步骤1024,输入的二进制数据,若不足30bit则高位补0至30bit,若超出32bit则仅保留低30bit,若正好30bit则不变。输出长度为30bit的二进制数据;
步骤1025,输入的长度为30bit的二进制数据作为密文,按照长度30b进行解密运算,输出长度为30bit的二进制数据明文;
步骤1026,二进制转换为十进制,作为输出;
步骤1027,输出=输入值+原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1028,输出=输入值*(-1);
步骤1029,解密完成的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000]。
该实施例中,将原始坐标取反后减去原始ASN.1经度的起点值,即得到相对于原始ASN.1经度的起点值的偏移量,在中国区域的范围下,其有效取值范围较小,可用30bit表达。然后对此偏移量进行加密操作,加密后的密文作为新的偏移量仍然需要加上现有ASN.1编码定义的经度下限值,以此恢复了经度坐标作为ASN.1编码的输入格式。后续即正常执行ASN.1编码过程。
示例4
如图11中,对经度坐标加密,采用截除压缩(即步骤11中方式一中的第3种)。此例子中,经度坐标的编码值截短1bit,即1个LSB,取值范围下降为一半,对应的经度的分辨率下降1倍,变为2*10^-7度。发端处理顺序:先加密后编码。具体的,发端和收端的处理流程包括:
1、发送端包括:
步骤1111,待加密的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000];
步骤1112,输出=输入值-原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1113,十进制转为二进制,若不足32bit则高位补0至32bit,截断最低1b,输出长度为31b的二进制数据;
步骤1114,输入的长度为31bit的二进制数据作为明文,按照长度31b进行加密运算,输出长度为31b的二进制数据密文;
步骤1115,二进制转为十进制,作为输出;
步骤1116,输出=输入值+原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数,范围是[-1799999999,1800000000];
步骤1117,对输入值进行ASN.1编码。
2、接收端包括:
步骤1121,经度值ASN.1译码,输出十进制整形值INTEGER,其合法范围是[-1799999999,1800000001];
步骤1122,输出=输入值-原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1123,十进制转为二进制,作为输出(长度最多为32bit);
步骤1124,输入的二进制数据,若不足31bit则高位补0至31bit,若超出31bit则仅保留低31bit,若正好31bit则不变。输出长度为31bit的二进制数据;
步骤1125,输入的长度为31bit的二进制数据作为密文,按照长度31bit进行解密运算,输出长度为31bit的二进制数据明文;
步骤1126,输入31b的二进制数据,最低位补0至32bit,二进制转换为十进制,作为输出;
步骤1127,输出=输入值+原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1128,解密完成的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000]。
该实施例中,将原始坐标数据的低位至少截除1比特位后,得到的坐标数据的取值范围至少缩小1bit。然后对此缩短后的数据进行加密操作,加密后的密文转换为十进制后仍然需要加上现有ASN.1编码定义的经度下限值,以此恢复了经度坐标作为ASN.1编码的输入格式。后续即正常执行ASN.1编码过程。
二、以目标地理区域为中国区域,第一坐标数据为中国区域的纬度坐标,ASN.1定义的坐标最小值为全球纬度坐标最小值,ASN.1定义的坐标最大值为全球纬度坐标最大值为例,对发送端和接收端的坐标处理流程进行介绍。
示例5
如图12中,对纬度坐标加密,采用偏转压缩(即步骤11中方式一中的第1种)。发端处理顺序:先加密后编码。具体的,发端和收端的处理流程包括:
1、发送端包括:
步骤1211,待加密的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000];
步骤1212,输出=输入值-基准经度的十进制整形值INTEGER(即730000000);
步骤1213,十进制转为二进制,若不足30bit则高位补0至30bit,输出长度为30bit的二进制数据;
步骤1214,输入的长度为30bit的二进制数据作为明文,按照长度30bit进行加密运算,输出长度为30bit的二进制数据密文;
步骤1215,二进制转为十进制,作为输出;
步骤1216,输出=输入值+原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数,范围是[-1799999999,1800000000];
步骤1217,
2、接收端包括:对输入值进行ASN.1编码。
步骤1221,经度值ASN.1译码,输出十进制整形值INTEGER,其合法范围是[-1799999999,1800000001];
步骤1222,输出=输入值-原始ASN.1经度的起点值(即-1799999999),输出类型为INTEGER整数;
步骤1223,十进制转为二进制,作为输出(长度最多为32bit);
步骤1224,输入的二进制数据,若不足30bit则高位补0至30bit,若超出32bit则仅保留低30bit,若正好30bit则不变。输出长度为30bit的二进制数据;
步骤1225,输入的长度为30bit的二进制数据作为密文,按照长度30bit进行解密运算,输出长度为30bit的二进制数据明文;
步骤1226,二进制转换为十进制,作为输出;
步骤1227,输出=输入值+基准经度的十进制整形值INTEGER(即730000000);
步骤1228,解密完成的原始经度的十进制整形值INTEGER,范围是[-1790000000,1800000000]。
该实施例中,基准纬度的十进制整形值INTEGER(即30000000)的取值为示例,具体选取原则为能够涵盖我国国土的最南侧的纬度坐标。
应当指出,上述图8至图12所示的实施例中,每个步骤中的输出指的是本步骤的输出,输入值为上一步骤中得到的输出值。
另外,需要说明的是,本发明不限于我国使用,对于其他国家和地区,也可以分析其经纬度区域,找出相应的基准值用于偏移,或者取反等,来达到数据范围bit压缩的目的。
上述方案,通过将原始输入的坐标数据进行转换压缩处理,压缩后编码所需bit数目比现有bit数目至少减少1位,对压缩后的数据进行加密操作实现对经纬度这类坐标数据进行加密处理后,仍然能够保证加密后的密文数据不超出ASN.1的编码范围,能够正常进行ASN.1PER编译码。并且使用传统的加密算法即可,不需要设计专门的(Format PreservingEncryption,FPE算法。保证设备广泛可使用。
应当指出,本发明的上述举例中,对于经度的ASN.1定义,将东经作为正值,西经作为负值作为示例性说明。但如果某些系统中ASN.1的取值的正负号反过来(如东经为负值,西经为正值),则本发明思想仍然可以用;同理,纬度也是如此。
第三实施例
如图13所示,本发明实施例提供一种坐标处理装置1300,应用于发送端,包括:
第一处理模块1301,用于根据第一预设规则,将第一坐标数据转换为第二坐标数据;其中,所述第一坐标数据为待加密的原始坐标数据;所述第二坐标数据对应的二进制比特位数比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位;
加密模块1302,用于将所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理,得到长度为所述预设比特长度的二进制密文作为第三坐标数据;其中所述预设比特长度比第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位;
第二处理模块1303,用于将所述第三坐标数据与ASN.1定义的坐标最小值相加,得到第四坐标数据;
编码模块1304,用于将所述第四坐标数据进行ASN.1 UPER编码,生成编码数据;
发送模块1305,用于向接收端发送所述编码数据。
可选的,第一处理模块1301包括:
第一处理子模块,用于将所述第一坐标数据和预设基准坐标按照第一预设计算规则,计算得到所述第二坐标数据。
可选的,所述第一处理子模块包括:
第一计算单元,用于计算所述第一坐标数据与第一预设基准坐标的第一差值,将所述第一差值作为所述第二坐标数据;其中,所述第一预设基准坐标小于或者等于ASN.1定义的目标地理区域的坐标最小值,且大于或者等于ASN.1定义的坐标最小值;目标地理区域的坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位;
第二计算单元,用于计算所述第一坐标数据的相反数与第二预设基准坐标的第二差值,将所述第二差值作为所述第二坐标数据;
第三计算单元,用于计算第三预设基准坐标与所述第一坐标数据的第三差值,将所述第三差值作为所述第二坐标数据;其中,所述第三预设基准坐标大于或者等于ASN.1定义的目标地理区域的坐标最大值,且小于或者等于ASN.1定义的坐标最大值。
可选的,第一处理模块1301包括:
第二处理子模块,用于将第一坐标数据减去第四预设基准坐标得到第四差值,将所述第四差值对应的二进制数的最低X位进行截除,将所述第四差值的剩余位数作为所述第二坐标数据;其中,X至少为1。
可选的,在采用对称加密算法对所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理时,所用的初始转化向量(initialization vector/initializationvalue,IV)值是和接收端预先约定的固定IV值;或者是预先配置的所述IV值;或者是从第三方获取的所述IV值;或者是按照约定规则,根据所述编码数据所在的空口消息中携带的数据得到的所述IV值;或者是根据加密密钥与IV值的映射关系确定的所述IV值。
可选的,在采用对称加密算法对所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理时,所用的IV值是根据第一信息确定的;其中,所述第一信息至少包括以下其中两项:预配置参数、第三方发送的参数、所述编码数据所在的空口消息中携带的数据、加密密钥。
可选的,所述预设比特长度为8的整数倍。
本发明的第三实施例是与上述第一实施例的方法对应的装置,上述第一实施例中的所有实现手段均适用于该坐标处理装置1300的实施例中,也能达到相同的技术效果。
第四实施例
如图14所示,本发明实施例的一种坐标处理装置1400,应用于接收端,装置1400包括:
接收模块1401,用于接收发送端发送的编码数据;
解码模块1402,用于对所述编码数据进行ASN.1 UPER解码处理,得到第四坐标数据;
第三处理模块1403,用于将所述第四坐标数据与ASN.1定义的坐标最小值相减,得到第三坐标数据
解密模块1404,用于将所述第三坐标数据按照预设比特长度进行解密处理,得到第二坐标数据;其中所述预设比特长度比第一坐标数据对应的ASN.1UPER编码比特位数少至少1位,所述第一坐标数据为待解密的原始坐标数据;
第四处理模块1405,用于根据第二预设规则,将所述第二坐标数据转换为第一坐标数据;其中,所述第二坐标数据的对应的二进制比特位数比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位。
可选的,第四处理模块1405包括:
第三处理子模块,用于将所述第二坐标数据和预设基准坐标按照第二预设计算规则,计算得到所述第一坐标数据。
可选的,第三处理子模块包括:
第四计算单元,用于计算所述第二坐标数据与第一预设基准坐标的第一和值,将所述第一和值作为所述第一坐标数据;其中,所述第一预设基准坐标小于或者等于ASN.1定义的目标地理区域的坐标最小值,且大于或者等于ASN.1定义的坐标最小值;目标地理区域的坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位,
第五计算单元,用于计算所述第二坐标数据与第二预设基准坐标的第二和值,将所述第二和值的相反数作为所述第一坐标数据;
第六计算单元,用于计算第三预设基准坐标与所述第二坐标数据的第五差值,将所述第五差值作为所述第一坐标数据;其中,所述第三预设基准坐标大于或者等于ASN.1定义的目标地理区域的坐标最大值,且小于或者等于ASN.1定义的坐标最大值。
可选的,第四处理模块1405包括:
第四处理子模块,用于将二进制的第二坐标数据的最低位后面补X个比特位的0,得到第四差值;其中,X至少为1;
第五处理子模块,用于计算所述第四差值与第四预设基准坐标的第三和值,将所述第三和值作为所述第一坐标数据。
可选的,在对所述第三坐标数据按照预设比特长度进行解密处理时所用的IV值是接收所述发送端发送的所述IV值;或者是从第三方获取的所述IV值;或者是按照约定规则,根据所述编码数据所在的空口消息中携带的数据得到的所述IV值;或者是根据加密密钥与IV值的映射关系确定的所述IV值。
可选的,在对所述第三坐标数据按照预设比特长度进行解密处理时所用的IV值是根据第一信息确定的;其中,所述第一信息至少包括以下其中两项:预配置参数、第三方发送的参数、所述编码数据所在的空口消息中携带的数据、加密密钥。
可选的,所述预设比特长度为8的整数倍。
本发明的第四实施例是与上述第二实施例中的方法对应的装置,上述方法实施例中的所有实现手段均适用于该坐标处理装置1400的实施例中,也能达到相同的技术效果。
第五实施例
为了更好的实现上述目的,如图15所示,本发明的第五实施例还提供了一种坐标处理设备,可选的该坐标处理设备包括但不限于:车载单元OBU、路侧单元RSU、便携终端VRU、云控平台,应用服务器、地理位置服务器、智能网联汽车,具体的,该坐标处理设备包括:收发机1510、存储器1520、处理器1500、总线接口及存储在存储器1520上并可在处理器1500上运行的计算机程序,所述处理1500执行所述计算机程序时实现如第一实施例所述坐标处理方法的步骤。其中,收发机1510与总线接口连接,用于在处理器1500的控制下接收和发送数据。
具体的,所述处理器1500用于读取存储器1520中的程序执行以下步骤:
根据第一预设规则,将第一坐标数据转换为第二坐标数据;其中,所述第一坐标数据为待加密的原始坐标数据;所述第二坐标数据对应的二进制比特位数比所述第一坐标数据对应的抽象语法记法ASN.1不对齐压缩编码规则UPER编码比特位数少至少1位;
将所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理,得到长度为所述预设比特长度的二进制密文作为第三坐标数据;其中所述预设比特长度比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位;
将所述第三坐标数据与ASN.1定义的坐标最小值相加,得到第四坐标数据;
将所述第四坐标数据进行ASN.1 UPER编码,生成编码数据;
向接收端发送所述编码数据。
其中,在图15中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1500代表的一个或多个处理器和存储器1520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1510可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1500负责管理总线架构和通常的处理,存储器1520可以存储处理器1500在执行操作时所使用的数据。
可选的,处理器1500在根据第一预设规则,将第一坐标数据转换为第二坐标数据时,具体用于:
将所述第一坐标数据和预设基准坐标按照第一预设计算规则,计算得到所述第二坐标数据。
可选的,处理器1500在根据所述第一坐标数据和预设基准坐标按照第一预设计算规则,计算得到所述第二坐标数据时,具体用于以下其中一项:
计算所述第一坐标数据与第一预设基准坐标的第一差值,将所述第一差值作为所述第二坐标数据;其中,所述第一预设基准坐标小于或者等于ASN.1定义的目标地理区域的坐标最小值,且大于或者等于ASN.1定义的坐标最小值;目标地理区域的坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位;
计算所述第一坐标数据的相反数与第二预设基准坐标的第二差值,将所述第二差值作为所述第二坐标数据;
计算第三预设基准坐标与所述第一坐标数据的第三差值,将所述第三差值作为所述第二坐标数据;其中,所述第三预设基准坐标大于或者等于ASN.1定义的目标地理区域的坐标最大值,且小于或者等于ASN.1定义的坐标最大值。
可选的,处理器1500在根据第一预设规则,将第一坐标数据转换为第二坐标数据时,还可以具体用于:
将第一坐标数据减去第四预设基准坐标得到第四差值,将所述第四差值对应的二进制数的最低X位进行截除,将所述第四差值的剩余位数作为所述第二坐标数据;其中,X至少为1。
可选的,在采用对称加密算法对所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理时,所用的初始转化向量(initialization vector/initializationvalue,IV)值是和接收端预先约定的固定IV值;或者是预先配置的所述IV值;或者是从第三方获取的所述IV值;或者是按照约定规则,根据所述编码数据所在的空口消息中携带的数据得到的所述IV值;或者是根据加密密钥与IV值的映射关系确定的所述IV值。
可选的,在采用对称加密算法对所述第二坐标数据对应的二进制数按照预设比特长度进行加密处理时,所用的IV值是根据第一信息确定的;其中,所述第一信息至少包括以下其中两项:预配置参数、第三方发送的参数、所述编码数据所在的空口消息中携带的数据、加密密钥。
可选的,所述预设比特长度为8的整数倍。
本发明提供的实施例,将待加密的原始的坐标数据(如经度或纬度坐标数据)的取值(即第一坐标数据)根据第一预设规则,进行转换处理,使转换得到的第二坐标数据所需的编码比特位数量相比现有第一坐标数据的编码比特位数量减少至少1个bit。进一步的,对bit位数减少的第二坐标数据按照预设比特长度进行加密操作,生成与所述预设比特长度等长的密文(第三坐标数据),如图4,加密后的第二坐标数据始终处于ASN.1编码的有效编码范围内;进一步将所述第三坐标数据与ASN.1定义的坐标最小值相加,得到第四坐标数据后;将第四坐标数据进行ASN.1 UPER编码,生成编码数据并对外发送。而收端则进行与发送端相应的逆操作即可恢复原始的第一坐标数据。这样,能够保证加密坐标取值不超出原始坐标的有效区间,避免引发传输失败的问题。
本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
第六实施例
为了更好的实现上述目的,如图16所示,本发明的第五实施例还提供了一种坐标处理设备,可选的该坐标处理设备包括但不限于:车载单元OBU、路侧单元RSU、便携终端VRU、云控平台,应用服务器、地理位置服务器、智能网联汽车,具体的,坐标处理设备包括:包括:收发机1610、存储器1620、处理器1600、总线接口及存储在存储器1620上并可在处理器1600上运行的计算机程序,所述处理1600执行所述计算机程序时实现如第一实施例所述坐标处理方法的步骤。其中,收发机1610与总线接口连接,用于在处理器1600的控制下接收和发送数据。
具体的,所述处理器1600用于读取存储器1620中的程序执行以下步骤:
接收发送端发送的编码数据;
对所述编码数据进行ASN.1 UPER解码处理,得到第四坐标数据;
将所述第四坐标数据与ASN.1定义的坐标最小值相减,得到第三坐标数据;
将所述第三坐标数据按照预设比特长度进行解密处理,得到第二坐标数据;其中所述预设比特长度比第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位,所述第一坐标数据为待解密的原始坐标数据;
根据第二预设规则,将所述第二坐标数据转换为第一坐标数据;其中,所述第二坐标数据的对应的二进制比特位数比所述第一坐标数据对应的ASN.1 UPER编码比特位数少至少1位。
其中,在图16中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1600代表的一个或多个处理器和存储器1620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1610可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1600负责管理总线架构和通常的处理,存储器1620可以存储处理器1100在执行操作时所使用的数据。
可选的,处理器1600在根据第二预设规则,将所述第二坐标数据转换为第一坐标数据,包括:
将所述第二坐标数据和预设基准坐标按照第二预设计算规则,计算得到所述第一坐标数据。
可选的,所述处理器1600在将所述第二坐标数据和预设基准坐标按照第二预设计算规则,计算得到所述第一坐标数据时,具体用于以下其中一项:
计算所述第二坐标数据与第一预设基准坐标的第一和值,将所述第一和值作为所述第一坐标数据;其中,所述第一预设基准坐标小于或者等于ASN.1定义的目标地理区域的坐标最小值,且大于或者等于ASN.1定义的坐标最小值;目标地理区域的坐标最大值与所述第一预设基准坐标的差值对应的二进制比特位数比所述第一坐标数据对应的ASN.1编码比特位数少至少1位,
计算所述第二坐标数据与第二预设基准坐标的第二和值,将所述第二和值的相反数作为所述第一坐标数据;
计算第三预设基准坐标与所述第二坐标数据的第五差值,将所述第五差值作为所述第一坐标数据;其中,所述第三预设基准坐标大于或者等于ASN.1定义的目标地理区域的坐标最大值,且小于或者等于ASN.1定义的坐标最大值。
可选的,所述处理器1600在根据第二预设规则,将所述第二坐标数据转换为第一坐标数据时,具体用于:
将二进制的第二坐标数据的最低位后面补X个比特位的0,得到第四差值;其中,X至少为1;
计算所述第四差值与第四预设基准坐标的第三和值,将所述第三和值作为所述第一坐标数据。
可选的,在对所述第三坐标数据按照预设比特长度进行解密处理时所用的IV值是接收所述发送端发送的所述IV值;或者是从第三方获取的所述IV值;或者是按照约定规则,根据所述编码数据所在的空口消息中携带的数据得到的所述IV值;或者是根据加密密钥与IV值的映射关系确定的所述IV值。
可选的,在对所述第三坐标数据按照预设比特长度进行解密处理时所用的IV值是根据第一信息确定的;其中,所述第一信息至少包括以下其中两项:预配置参数、第三方发送的参数、所述编码数据所在的空口消息中携带的数据、加密密钥。
可选的,所述预设比特长度为8的整数倍。本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
另外,本发明具体实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的第一实施例或者第二实施例中的方法的步骤。且能达到相同的技术效果,为避免重复,这里不再赘述。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。