一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据交互方法、装置、终端设备及存储介质与流程

2021-12-04 02:25:00 来源:中国专利 TAG:


1.本发明涉及电网信息安全技术领域,尤其涉及一种数据交互方法、装置、终端设备及存储介质。


背景技术:

2.通常,在进行用电信息采集系统建设中需要部署大量的终端设备,以便实现数据信息的采集、交换、分析。电表、电卡、主站作为用电信息采集系统的基础设施,经常有大量的数据信息需要进行交换,以完成如参数预置、数据回抄、充值、扣款等业务操作。
3.传统的电表、电卡、主站之间的数据交互均是通过明文直接进行读取、发送,该方法虽然简单,但是当有非法人员进行恶意攻击时,无法保证数据信息的安全性和完整性。


技术实现要素:

4.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种数据交互方法,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
5.本发明的第二个目的在于提出一种计算机可读存储介质。
6.本发明的第三个目的在于提出一种终端设备。
7.本发明的第四个目的在于提出一种数据交互装置。
8.为达到上述目的,本发明第一方面实施例提出了一种数据交互方法,应用于第一终端设备,方法包括:接收第二终端设备发送的读指令,读指令包括第一命令头和数据域,第一命令头包括读命令、第一参数和第二参数,第一参数用于指示待读取文件的获取方式,待读取文件的文件属性用于指示读密钥,第二参数用于指示待读取文件的起始偏移地址,数据域包括随机数和第二命令头,第二命令头包括与待读取数据对应的待执行命令;根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据;根据待读取文件的文件属性获取读密钥;根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作。
9.根据本发明实施例的数据交互方法,通过在读指令中设置第一参数用于指示待读取文件的获取方式,且该待读取文件的文件属性用于指示读密钥,并设置第二参数用于指示待读取文件的起始偏移地址,以及设置随机数和具有与待读取数据对应的待执行命令的第二命令头,并在第一终端设备接收到读指令后,根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据,以及根据待读取文件的文件属性获取读密钥,并根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作,从而不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
10.根据本发明的一个实施例,数据域还包括分散因子,在根据待读取文件的文件属性获取读密钥后,方法还包括:根据分散因子对读密钥进行分散化处理。
11.根据本发明的一个实施例,在根据第二参数从待读取文件中读取待读取数据之前,方法还包括:对第二命令头进行校验,并在校验通过后根据第二参数从待读取文件中读取待读取数据。
12.根据本发明的一个实施例,第二命令头还包括第三参数,第三参数用于指示待读取数据的待更新位置,对第二命令头进行校验,包括:当确定待执行命令为更新二进制文件命令时,若第三参数与第二参数相同,则校验通过;当确定待执行命令为更新记录文件命令时,若第三参数为预设参数,则校验通过;当确定待执行命令不为更新二进制文件命令和更新记录文件命令时,直接校验通过。
13.根据本发明的一个实施例,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,包括:根据随机数生成初始校验码;根据初始校验码和读密钥中的认证密钥对第二命令头和待读取数据进行校验计算以获得校验数据;根据待读取数据和校验数据生成安全数据。
14.根据本发明的一个实施例,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,包括:根据读密钥中的加密密钥对第二命令头和待读取数据进行加密,以获得密文数据;根据密文数据生成安全数据。
15.根据本发明的一个实施例,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,包括:根据读密钥中的加密密钥对待读取数据进行加密,以获得密文数据;根据随机数生成初始校验码;根据初始校验码和读密钥中的认证密钥对第二命令头和密文数据进行校验计算以获得校验数据;根据密文数据和校验数据生成安全数据。
16.根据本发明的一个实施例,根据随机数生成初始校验码,包括:当采用des算法进行校验计算以获得校验数据时,对随机数进行多字节补位以生成初始校验码;当采用国密算法进行校验计算以获得校验数据时,先对随机数进行多字节补位以获得补位随机数,再对补位随机数取反,以及根据取反前的补位随机数和取反后的补位随机数生成初始校验码。
17.根据本发明的一个实施例,第一终端设备为电表、第二终端设备为电卡;或者,第一终端设备为电卡,第二终端设备为电表;或者,第一终端设备为电表,第二终端设备为主站。
18.为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有数据交互程序,该数据交互程序被处理器执行时实现前述的数据交互方法。
19.根据本发明实施例的计算机可读存储介质,通过前述的数据交互方法,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
20.为达到上述目的,本发明第三方面实施例提出了一种终端设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的数据交互程序,处理器执行程序时,实现前述的数据交互方法。
21.根据本发明实施例的终端设备,通过前述的数据交互方法,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
22.为达到上述目的,本发明第四方面实施例提出了一种数据交互装置,应用于第一终端设备,装置包括:接收模块,用于接收第二终端设备发送的读指令,读指令包括第一命令头和数据域,第一命令头包括读命令、第一参数和第二参数,第一参数用于指示待读取文件的获取方式,待读取文件的文件属性用于指示读密钥,第二参数用于指示待读取文件的起始偏移地址,数据域包括随机数和第二命令头,第二命令头包括与待读取数据对应的待执行命令;数据获取模块,用于根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据;密钥获取模块,用于根据待读取文件的文件属性获取读密钥;生成模块,用于根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作。
23.根据本发明实施例的数据交互装置,通过在读指令中设置第一参数用于指示待读取文件的获取方式,且该待读取文件的文件属性用于指示读密钥,并设置第二参数用于指示待读取文件的起始偏移地址,以及设置随机数和具有与待读取数据对应的待执行命令的第二命令头,并在第一终端设备接收到读指令后,根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据,以及根据待读取文件的文件属性获取读密钥,并根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作,从而不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
24.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
25.图1为根据本发明一个实施例的数据交互方法的应用场景图;图2为根据本发明一个实施例的数据交互方法的流程图;图3为根据本发明一个具体示例的数据交互方法的流程图;图4为根据本发明一个实施例的数据交互装置的方框示意图。
具体实施方式
26.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
27.本技术提供的数据交互方法,可以应用于如图1所示的应用环境中。其中,第一终端设备可通过有线方式或无线方式与第二终端设备进行通信,以接收第二终端设备发送的读指令,读指令包括第一命令头和数据域,第一命令头包括包括读命令、第一参数和第二参数,第一参数用于指示待读取文件的获取方式,待读取文件的文件属性用于指示读密钥,第二参数用于指示待读取文件的起始偏移地址,数据域包括随机数和第二命令头,第二命令头包括与待读取数据对应的待执行命令,第一终端设备在接收到读指令后,根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据,以及根据待读取文件
的文件属性获取读密钥,并根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作。由此,不仅能够保证数据信息的安全性和完整性,而且可以提高数据交互的快速性和高效性。
28.在一些实施例中,如图2所示,提供了一种数据交互方法,以该方法应用于图1中的第一终端设备为例进行说明,可包括以下步骤:步骤s101,接收第二终端设备发送的读指令,读指令包括第一命令头和数据域,第一命令头包括读命令、第一参数和第二参数,第一参数用于指示待读取文件的获取方式,待读取文件的文件属性用于指示读密钥,第二参数用于指示待读取文件的起始偏移地址,数据域包括随机数和第二命令头,第二命令头包括与待读取数据对应的待执行命令。
29.具体来说,当第二终端设备需要从第一终端设备中读取数据,并完成相关的执行命令时,可在读指令中给出待读取文件的获取方式、待读取数据的读取位置、随机数以及待执行命令等,以便第二终端设备基于读指令将待读取数据从第一终端设备中安全读出,并将待读取数据以相关的执行命令更新至第二终端设备,从而完成数据的安全、高效的交换。
30.作为一个具体示例,读指令可采用表1所示的命令格式:表1在表1中,第一命令头包括cla、ins、p1、p2和lc,其中cla为命令类别,用1字节表示,其值可以为“00”或“04”,表示该报文为命令报文;ins为命令类别中的命令代码,用1字节表示,其值可以为“b0”,表示该报文用于数据读取,即读命令;p1为第一参数,用于指示待读取文件的获取方式,用1字节表示,其值可以为“100xxxxx”(二进制),其中b8位为“1”,表示采用sfi(short file identifier,短文件标识符)方式获取待读取文件,b7和b6位均为保留位,可设置为“0”,b5至b1位表示待读取文件对应的短文件标识符,且待读取文件的文件属性用于指示读密钥,该读密钥可包括加密密钥和/或认证密钥,同时文件属性还可用于指示待读取文件的读属性,读属性可为明文、明文校验、密文和密文校验中的任一种;p2为第二参数,用于指示待读取文件的起始偏移地址,用1字节表示;lc表示读指令中的数据域
data的长度。
31.数据域data可包括第二命令头、或者第二命令头和分散因子、或者第二命令头、随机数和分散因子,具体可根据期望返回的数据方式确定,如期望返回的数据方式为明文方式,则数据域data可包括第二命令头,期望返回的数据类型为密文方式,则数据域data可包括第二命令头和分散因子,期望返回的数据方式为校验方式,则数据域data可包括第二命令头、随机数和分散因子。其中,第二命令头用于在第一终端设备获得待读取数据后,与待读取数据相结合形成新的命令报文返回至第二终端设备,以便第二终端设备根据第二命令头对待读取数据执行相关的操作,如加钱、减钱、更新二进制文件、更新记录文件等操作。第二命令头可为5字节命令头,包括cla_1、ins_1、p1_1、p2_1和lc_1,其中cla_1为命令类别,用1字节表示,其值可以为“00”或“04”,表示由该第二命令头形成的新的报文为命令报文;ins_1为命令类别中的命令代码,用于指示待读取数据对应的待执行命令,用1字节表示,其值可以为“d6”、“dc”,当为“d6”时表示待执行命令为利用待读取数据更新二进制文件的命令,当为“dc”时表示待执行命令为利用待读取数据更新记录文件的命令,当然也可以为其它待执行命令,如参数设置命令、充值命令、扣款命令等等,具体可根据实际需求灵活设置;p1_1为第四参数,用于指示待更新文件的获取方式,其设置方式可与第一参数p1相同;p2_1为第三参数,用于指示待更新文件的起始偏移地址或记录号,用1字节表示;lc_1表示由该第二命令头形成的新的报文的数据域的长度。分散因子可为离散数据,用于对获取的读密钥进行分散化处理,其为可选项,具体可根据数据交互的安全级别确定,如安全级别较低时,可不设置分散因子,安全级别较高时,可设置分散因子,且安全级别越高,分散因子的分散级数越高。随机数可为4字节随机数等,可由第一终端设备或第二终端设备生成,用于后续进行校验计算时计算初始校验码。
32.le表示期望返回的字节数,该字节数与期望返回的数据方式相关,而期望返回的数据方式需要与待读取文件的读属性(本技术中不做相关介绍)保持一致。
33.步骤s102,根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据。
34.具体地,第一终端设备在执行读指令时,可根据第一参数p1获取相应的待读取文件。以表1为例,当第一参数p1为“81”时,表示采用sfi方式获取短文件标识符为00001的待读取文件;当第一参数p1为“82”时,表示采用sfi方式获取短文件标识符为00002的待读取文件;以此类推。而后,根据第二参数p2从待读取文件中读取待读取数据。以表1为例,当第二参数p2为“00”时,表示待读取文件的起始偏移地址为“00”,第一终端设备将从“00”开始读取待读取数据;当第二参数p2为“02”时,表示待读取文件的起始偏移地址为“02”,第一终端设备将从“02”开始读取待读取数据;以此类推。
35.在一些实施例中,在根据第二参数从待读取文件中读取待读取数据之前,方法还包括:对第二命令头进行校验,并在校验通过后根据第二参数从待读取文件中读取待读取数据。
36.可选的,第二命令头还包括第三参数,第三参数用于指示待读取数据的待更新位置,例如,用于指示待更新文件的起始偏移地址或记录号,对第二命令头进行校验,包括:当确定待执行命令为更新二进制文件命令时,若第三参数与第二参数相同,则校验通过;当确定待执行命令为更新记录命令时,若第三参数为预设参数时,则校验通过;当确定待执行命
令不为更新二进制文件命令和更新记录文件命令时,直接校验通过。
37.具体来说,以表1中的第二命令头为例,当命令代码ins_1对应的待执行命令为“d6”时,表示待执行命令为更新二进制文件命令,此时判断第二命令头中的第三参数p2_1与第一命令头中的第二参数p2是否一致,即判断第三参数p2_1对应的起始偏移地址与第二参数p2对应的起始偏移地址是否一致,若一致,则校验通过,否则校验不通过;当命令代码ins_1对应的待执行命令为“dc”时,表示待执行命令为更新记录文件命令,此时判断第三参数p2_1是否为预设参数,如“0c”或“04”,该预设参数用于指示以记录号方式访问待更新文件,如果是,则校验通过,否则校验不通过;当命令代码ins_1对应的待执行命令既不为“d6”也不为“dc”时,则直接校验通过,即不对第二命令头进行校验,此时由应用流程保证执行的正确性。
38.步骤s103,根据待读取文件的文件属性获取读密钥。
39.具体来说,在获得待读取文件后,可基于待读取文件的文件属性获得读密钥。
40.在一些实施例中,数据域还包括分散因子,在根据待读取文件的文件属性获取读密钥后,方法还包括:根据分散因子对读密钥进行分散化处理。例如,当数据交互的安全级别要求较高时,表1的数据域data包括分散因子,第一终端设备在根据第一参数p1获得读密钥后,还对读密钥进行分散化处理,以提高数据交互的安全性。
41.步骤s104,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作。
42.具体来说,在获得随机数、读密钥、待读取数据以及第二命令头后,可根据期望返回的数据方式对第二命令头和待读取数据进行处理生成安全数据,如明文校验数据、密文数据、密文校验数据,可以理解的是,在安全性要求极低的条件下,安全数据也可以为明文数据。
43.作为第一种示例,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,包括:根据随机数生成初始校验码;根据初始校验码和读密钥中的认证密钥对第二命令头和待读取数据进行校验计算以获得校验数据;根据待读取数据和校验数据生成安全数据。即,根据随机数和认证密钥对第二命令头和待读取数据进行处理生成明文校验数据。
44.可选的,在一些示例中,根据随机数生成初始校验码,包括:当采用des算法进行校验计算以获得校验数据时,对随机数进行多字节补位以生成初始校验码。例如,在4字节随机数的低位补4字节的“00”,以生成8字节的初始校验码。
45.在另一些示例中,根据随机数生成初始校验码,包括:当采用国密算法进行校验计算以获得校验数据时,先对随机数进行多字节补位以获得补位随机数,再对补位随机数取反,以及根据取反前的补位随机数和取反后的补位随机数生成初始校验码。例如,当采用国密算法sm1进行校验计算以获得校验数据时,先在4字节随机数的低位补4字节的“00”以形成8字节随机数(可称为补位随机数),而后对该8字节随机数取反,并将取反前后的8字节随机数进行组合以生成16字节的初始校验码。
46.作为第二种示例,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,包括:根据读密钥中的加密密钥对第二命令头和待读取数据进行加密,以获
得密文数据;根据密文数据生成安全数据。即,根据加密密钥对第二命令头和待读取数据进行处理生成密文数据。
47.作为第三种示例,根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,包括:根据读密钥中的加密密钥对待读取数据进行加密,以获得密文数据;根据随机数生成初始校验码;根据初始校验码和读密钥中的认证密钥对第二命令头和密文数据进行校验计算以获得校验数据;根据密文数据和校验数据生成安全数据。即根据随机数、认证密钥和加密密钥对第二命令头和待读取数据进行处理生成密文校验数据。
48.需要说明的是,在安全性要求极低的条件下,安全数据即为明文数据,包括第二命令头和待读取数据。
49.在第一终端设备根据读指令获得安全数据后,将安全数据发送给第二终端设备,第二终端设备在接收到安全数据后,获取安全数据中的待读取数据,并根据待执行命令对待读取数据执行相应的操作,如更新二进制文件、更新记录文件、充值、扣款等。
50.进一步的,作为一个具体示例,参考图3所示,数据交互方法可包括以下步骤:步骤s201,执行读指令开始。
51.具体地,第一终端设备在接收到第二终端设备发送的读指令后,开始执行该读指令。
52.步骤s202,检查cla、p1、p2、lc状态,且用sfi方式打开p1指定的文件成功。如果是,则执行步骤s204,否则执行步骤s203。
53.具体地,第一终端设备在执行读指令时,先对第一命令头中的命令类别cla、第一参数p1、第二参数p2和读指令中的数据域data的长度lc进行检查,并根据第一参数p1指定的sfi方式打开指定的待读取文件,若打开成功,则执行步骤s204,否则执行步骤s203。
54.步骤s203,返回错误状态。
55.具体地,第一终端设备返回待读取文件无法打开的错误状态至第二终端设备。
56.步骤s204,判断数据域是否有分散因子。如果是,则执行步骤s207,否则执行步骤s205。
57.具体地,第一终端设备判断读指令的数据域data中是否有分散因子,若有,则执行步骤s207,若无,则执行步骤s205。
58.步骤s205,获取p1指定文件所指定的加密密钥、认证密钥成功。如果是,则执行步骤s209,否则执行步骤s206。
59.具体地,在数据域data中未存在分散因子时,第一终端设备直接从第一参数p1指定的文件的文件属性中获取相应的读密钥,如加密密钥和认证密钥,用于后续安全数据的计算。若获取成功,则执行步骤s209,否则执行步骤s206。
60.步骤s206,返回错误状态。
61.具体地,第一终端设备返回读密钥获取失败的错误状态至第二终端设备。
62.步骤s207,通过分散因子计算加密密钥、认证密钥成功。如果是,则执行步骤s209,否则执行步骤s208。
63.具体地,在数据域data中存在分散因子时,第一终端设备先从第一参数p1指定的文件的文件属性中获取相应的读密钥,如加密密钥和认证密钥,并利用分散因子对加密密钥和认证密钥进行分散化处理,得到分散化处理后的加密密钥和认证密钥,用于后续安全
数据的计算。如计算成功,则执行步骤s209,否则执行步骤s208。
64.步骤s208,返回错误状态。
65.具体地,第一终端设备返回读密钥计算失败的错误状态至第二终端设备。
66.步骤s209,ins_1为d6,p2_1==p2;或ins_1为dc,p2_1==0c或04。若成立,则执行步骤s211,否则执行步骤s210。
67.具体地,第一终端设备对第二命令头进行校验,其中,当第二命令头中的命令代码ins_1对应的待执行命令为“d6”时,判断第二命令头中的第三参数p2_1与第一命令头中的第二参数p2是否一致,若一致,则执行步骤s211,若不一致,则执行步骤s210;当第二命令头中的命令代码ins_1对应的待执行命令为“dc”时,判断第二命令头中的第三参数p2_1是否为“0c”或“04”,若是,则执行步骤s211,若否,则执行步骤s210;当第二命令头中的命令代码ins_1对应的待执行命令既不为“d6”也不为“dc”,则直接执行步骤s210。
68.步骤s210,返回错误状态。
69.具体地,第一终端设备返回第二命令头校验失败的错误状态至第二终端设备。
70.步骤s211,获取待读取数据,并根据随机数、加密密钥、认证密钥、第二命令头和待读取数据计算安全数据。
71.具体地,第一终端设备根据第二参数p2获取待读取数据,并基于待读取文件的读属性,根据随机数、加密密钥、认证密钥、第二命令头和待读取数据计算安全数据。例如,当读属性为明文时,直接根据第二命令头和待读取数据生成明文数据;当读属性为明文校验(即明文mac)时,根据随机数和认证密钥对第二命令头和待读取数据进行处理生成明文校验数据(即明文mac数据);当读属性为密文时,根据加密密钥对第二命令头和待读取数据进行处理生成密文数据;当读属性为密文校验时,根据随机数、认证密钥和加密密钥对第二命令头和待读取数据进行处理生成密文校验数据(即密文mac数据)。
72.步骤s212,判断是否计算成功。如果是,则执行步骤s214,否则执行步骤s213。
73.具体地,第一终端设备在计算获得安全数据后,执行步骤s214,否则执行步骤s213。
74.步骤s213,返回错误状态。
75.具体地,第一终端设备返回安全数据计算失败的错误状态至第二终端设备。
76.步骤s214,根据读属性返回安全数据。
77.具体地,第一终端设备根据读属性将计算得到的安全数据返回至第二终端设备,以便第二终端设备根据安全数据中的待执行命令对待读取数据进行处理。
78.步骤s215,执行读指令结束。
79.为便于本领域技术人员能够更清楚的了解本技术,下面举例进行说明。
80.作为第一个示例,以采用sfi方式获取待读取文件、待执行命令为更新二进制文件命令、数据域包括分散因子、期望返回的安全数据为密文校验数据为例。
81.当第二终端设备需要从第一终端设备读取数据并更新二进制文件时,可先基于表1生成读指令,如读指令为:04b0820111 11223344 04d6850114 556677889900aabb,并发送给第一终端设备。
82.第一终端设备在接收到读指令后,根据第一命令头“04b0820111”中的第一参数p1“82”以sfi方式获取短文件标识符为02的文件,并根据该文件的文件属性获得加密密钥ke
和认证密钥kmac。接着,第一终端设备获取到第二命令头“04d6850114”中的命令代码ins_1为“d6”,此时第一终端设备判断第二命令头中的第三参数p2_1“01”与第一命令头中的第二参数p2“01”是否一致,该示例中两者一致,第一终端设备根据第二参数p2“01”从文件的起始偏移地址“01”开始读出待读取数据data。接着,第一终端设备获取到数据域中存在分散因子“556677889900aabb”,第一终端设备利用分散因子依次对加密密钥ke和认证密钥kmac进行分散化处理,得到实际使用的加密密钥ke’和认证密钥kmac’。接着,第一终端设备利用加密密钥ke’对待读取数据data进行加密,得到密文数据edata,并根据随机数“11223344”生成初始校验码(也可称初始向量)iv,以及利用初始校验码iv和认证密钥kmac’对第二命令头和密文数据edata进行校验计算(即mac计算,如采用eds算法或国密算法进行mac计算)得到校验数据。最后,第一终端设备将密文数据edata和校验数据相结合得到密文校验数据返回给第二终端设备。
83.第二终端设备在接收到密文校验数据后,对密文校验数据校验、解密得到待读取数据和第二命令头,并根据第二命令头中的命令代码ins_1“d6”将待读取数据更新至二进制文件中,从而实现将第一终端设备的数据安全读出并同步至第二终端设备中。
84.作为第二个示例,以采用sfi方式获取待读取文件、待执行命令为更新二进制文件命令、数据域包括分散因子、期望返回的安全数据为密文校验数据为例。
85.当第二终端设备需要从第一终端设备读取数据并更新二进制文件时,可先基于表1生成读指令,如读指令为:04b0820111 11223344 04d6850314 556677889900aabb,并发送给第一终端设备。
86.第一终端设备在接收到读指令后,根据第一命令头“04b0820111”中的第一参数p1“82”以sfi方式获取短文件标识符为02的文件,并根据该文件的文件属性获得加密密钥ke和认证密钥kmac。接着,第一终端设备获取到第二命令头“04d6850314”中的命令代码ins_1为“d6”,此时第一终端设备判断第二命令头中的第三参数p2_1“03”与第一命令头中的第二参数p2“01”是否一致,该示例中两者不一致,此时第一终端设备返回错误状态至第二终端设备。
87.作为第三个示例,以采用sfi方式获取待读取文件、待执行命令为更新记录命令、数据域不包括分散因子、期望返回的安全数据为明文校验数据为例。
88.当第二终端设备需要从第一终端设备读取数据并更新记录文件时,可先基于表1生成读指令,如读指令为:04b0830009 11223344 04dc010c08,并发送给第一终端设备。
89.第一终端设备在接收到读指令后,根据根据第一命令头“04b0830009”中的第一参数p1“83”以sfi方式获取短文件标识符为03的文件,并根据该文件的文件属性获得认证密钥kmac。接着,第一终端设备获取到第二命令头“04dc010c08”中的命令代码ins_1为“dc”,此时第一终端设备判断第二命令头中的第三参数p2_1是否为“0c”或“04”,该示例中,第三参数p2_1为“0c”,校验通过,此时第一终端设备根据第二参数p2“00”从文件的起始偏移地址“00”开始读出4字节待读取数据data。接着,第一终端设备根据随机数“11223344”生成初始校验码iv,利用初始校验码iv和认证密钥kmac对第二命令头和待读取数据data进行校验计算得到校验数据。最后,第一终端设备将待读取数据data和校验数据相结合得到明文校验数据返回给第二终端设备。
90.第二终端设备在接收到明文校验数据后,对明文校验数据校验,并在校验通过后
得到待读取数据和第二命令头,并根据第二命令头中的命令代码ins_1“dc”将待读取数据更新至记录文件中,从而实现将第一终端设备的数据安全读出并同步至第二终端设备中。
91.作为第四个示例,以采用sfi方式获取待读取文件、待执行命令为更新记录命令、数据域不包括分散因子、期望返回的安全数据为明文校验数据为例。
92.当第二终端设备需要从第一终端设备读取数据并更新记录文件时,可先基于表1生成读指令,如读指令为:04b0830011 11223344 04dc010508,并发送给第一终端设备。
93.第一终端设备在接收到读指令后,根据第一命令头“04b0830011”中的第一参数p1“83”以sfi方式获取短文件标识符为03的文件,并根据该文件的文件属性获得认证密钥kmac。接着,第一终端设备获取到第二命令头“04dc010508”中的命令代码ins_1为“dc”,此时第一终端设备判断第二命令头中的第三参数p2_1是否为“0c”或“04”,该示例中,第三参数p2_1为“05”,校验不通过,此时第一终端设备返回错误状态至第二终端设备。
94.需要说明的是,对于其它情形这里就不再一一列举。
95.在上述实施例中,通过在读指令中设置用于指示待读取文件的获取方式的第一参数和获取待读取数据的第二参数,且通过待读取文件的文件属性指示读密钥,并在读指令中设置随机数,使得第一终端设备在获得待读取数据后,直接根据读密钥和/或随机数对待读取数据安全处理后返回给第二终端设备,从而无需先发送一条指令来获取待读取数据,再发送一条指令对待读取数据进行加密或校验计算得到返回的安全数据,而是通过一条指令即可将待读取数据从第一终端设备中安全读出至第二终端设备,实现了安全、完整、快速、高效的数据信息交换;同时,通过在读指令中设置与待读取数据相对应的第二命令头,使得第一终端设备在获得待读取数据后,根据待读取数据结合第二命令头生成新的指令返回至第二终端设备,使得第二终端设备直接根据第二命令头对待读取数据进行相应的操作,完成相应命令的执行,实现如参数预置、数据回抄、充值、扣款、数据更新等业务,从而通过第二命令头即可将数据读取和对数据操作相关联,无需增加新的校验匹配方式或过程来保证数据读取与对数据操作相一致,实现了快速、高效的数据信息交换,且可扩展各种交互命令,灵活性高。另外,在生成并返回安全数据时,可基于待读取文件的读属性可选择地生成并返回明文数据、明文校验数据、密文数据和密文校验数据中的任一种,返回方式多样,能够满足不同安全等级的要求。
96.需要说明的是,本技术的数据交互方法可应用于电网的用电信息采集系统中,具体可用于电表、电卡和主站中,以实现电表、电卡和主站之间的快速、高效的数据交换、信息同步等等,同时保证数据信息的安全性和完整性。例如,前述的第一终端设备为电卡,第二终端设备为电表,此时通过数据交互方法可实现从电卡中读取数据更新到电表中;或者,第一终端设备为电表、第二终端设备为电卡,此时通过数据交互方法可实现从电表中读取数据更新到电卡中;或者,第一终端设备为电表,第二终端设备为主站,此时通过数据交互方法可实现从电表中读取数据更新到主站中,如主站回抄电表数据。
97.作为第一种示例,当第一终端设备为电卡、第二终端设备为电表时,在通过数据交互方法实现从电卡中读取数据更新到电表中时,可由电表生成随机数用于后续初始校验码计算;电卡执行读指令以获得待读取数据,并生成返回数据至电表;电表根据待读取数据执行相应的命令,完成数据的更新,保证了电表和电卡的数据信息的同步。
98.举例来说,电表执行随机数生成指令“0084000004”获得4字节随机数rand4。
99.电卡执行读指令“04b0810009 rand4 8432010c0c”,其中根据第一命令头的第一参数p1“81”以sfi方式获取短文件标识符为01的文件,并根据该文件的文件属性获得认证密钥,以及从第二参数p2指示的起始偏移地址“00”开始从待读取文件中读取待读取数据,第二命令头的命令代码ins_1对应的待执行命令为充值命令,电卡通过读指令获得待读取数据为要充值的金额data1,并根据随机数rand4和认证密钥对金额data1和第二命令头“8432010c0c”进行校验计算生成校验数据mac1,以及将金额data1和校验数据mac1返回给电表。
100.电表根据返回的金额data1和校验数据mac1,执行充值命令,即根据8432010c0c data1 mac1进行充值,并更新充值后的新余额和交易金额到电卡。
101.电卡执行读指令“04b0820209 rand4 04d68502**”,其中根据第一命令头的第一参数p1“82”以sfi方式获取短文件标识符为02的文件,并根据该文件的文件属性获得认证密钥,以及从第二参数p2指示的起始偏移地址“02”开始从待读取文件中读取待读取数据,第二命令头的命令代码ins_1对应的待执行命令为更新二进制文件命令,电卡通过读指令获得待读取数据为要更新二进制文件数据data2,并根据随机数rand4和认证密钥对数据data2、第二命令头“04d68502**”进行校验计算生成校验数据mac2,以及将数据data2和校验数据mac2返回给电表。
102.电表根据返回的数据data2和校验数据mac2,执行更新二进制文件命令,即执行“04d68502** data2 mac2”以进行二进制文件更新。
103.由此,通过在第一命令头中指定读出数据的起始地址,在数据域中写入要执行命令的第二命令头,能够将数据信息安全地从电卡中读出,并将数据以相关的执行命令更新到电表中,从而完成数据的安全、高效交换。
104.作为第二种示例,当第一终端设备为电表、第二终端设备为电卡时,在通过数据交互方法实现从电表中读取数据更新到电卡中时,可由电表生成随机数用于后续初始校验码计算;电表执行读指令以获得待读取数据,并生成返回数据至电卡;电卡根据待读取数据执行相应的命令,完成数据的更新,保证了电表和电卡的数据信息的同步。
105.举例来说,电表执行随机数生成指令“0084000004”获得4字节随机数rand4。
106.电表执行读指令“04b0830311 rand4 04d68603** 分散因子”,其中根据第一命令头的第一参数p1“83”以sfi方式获取短文件标识符为03的文件,并根据该文件的文件属性获得认证密钥,以及通过分散因子分散处理,并从第二参数p2指示的起始偏移地址“03”开始从待读取文件中读取待读取数据,第二命令头的命令代码ins_1对应的待执行命令为更新二进制文件命令,电表通过读指令获得待读取数据为要更新二进制文件的数据data3,并根据随机数rand4和分散后的认证密钥对数据data3、第二命令头“04d68603**”进行校验计算生成校验数据mac3,以及将数据data3和校验数据mac3返回给电卡。
107.电卡根据返回的数据data3和校验数据mac3,执行更新二进制文件命令,即根据“04d68603** data3 mac3”进行二进制文件更新。
108.电表执行读命令“04b0840009 rand4 04dc010c08”,其中根据第一命令头的第一参数p1“84”以sfi方式获取短文件标识符为04的文件,并根据该文件的文件属性获得认证密钥,以及从第二参数p2指示的起始偏移地址“00”开始从待读取文件中读取待读取数据,第二命令头的命令代码ins_1对应的待执行命令为更新记录文件命令,电表通过读指令获
得待读取数据为要更新记录文件的数据data4,并根据随机数rand4和认证密钥对数据data4和第二命令头“04dc010c08”进行校验计算生成校验数据mac4,以及将数据data4和校验数据mac4返回给电卡。
109.电卡根据返回的数据data4和校验数据mac4,执行更新记录文件命令,即根据“04dc010c08 data4 mac4”进行记录文件更新。
110.由此,在第一命令头中指定读出数据的起始地址,在数据域中写入要执行命令的命令头,将数据信息安全地从电表中读出,并将数据以相关的执行命令更新到电卡中,从而完成数据的安全、高效交换。
111.作为第三种示例,当第一终端设备为电表、第二终端设备为主站时,在通过数据交互方法实现主站回抄电表数据时,可由电表生成随机数用于后续初始校验码计算;电表执行读指令以获得待读取数据,并生成返回数据至主站;主站根据待读取数据调用远程动态库,并进行校验,校验通过后,表示主站回抄电表数据成功,保证了电表和主站的数据信息的同步。
112.举例来说,电表执行随机数生成指令“0084000004”获得4字节随机数rand4。
113.电表执行读指令“04b0870511 rand4 04d68805** 分散因子”,其中根据第一命令头的第一参数p1“87”以sfi方式获取短文件标识符为07的文件,并根据该文件的文件属性获得认证密钥,以及通过分散因子分散处理,并从第二参数p2指示的起始偏移地址“05”开始从待读取文件中读取待读取数据,第二命令头的命令代码ins_1对应的待执行命令为更新二进制文件命令,电表通过读指令获得待读取数据为要更新二进制文件的数据data5,并根据随机数rand4和分散后的认证密钥对数据data5和第二命令头“04d68805**”进行校验计算生成校验数据mac5,以及将数据data5和校验数据mac5返回给主站。
114.主站根据返回的数据data5和校验数据mac5进行mac校验,如果校验成功,则回抄电表数据成功。
115.由此,主站可将电表返回的数据进行回抄,验证通过后即可进行更新,保证与电表数据信息的同步。
116.综上所述,根据本发明实施例的数据交互方法,通过在读指令中设置第一参数用于指示待读取文件的获取方式,且该待读取文件的文件属性用于指示读密钥,并设置第二参数用于指示待读取文件的起始偏移地址,以及设置随机数和具有与待读取数据对应的待执行命令的第二命令头,并在第一终端设备接收到读指令后,根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据,以及根据待读取文件的文件属性获取读密钥,并根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
117.在一些实施例中,还提供了一种计算机可读存储介质,其上存储有数据交互程序,该数据交互程序被处理器执行时实现前述的数据交互方法。
118.根据本发明实施例的计算机可读存储介质,通过前述的数据交互方法,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
119.在一些实施例中,还提供了一种终端设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的数据交互程序,处理器执行程序时,实现前述的数据交互方法。
120.根据本发明实施例的终端设备,通过前述的数据交互方法,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
121.在一些实施例中,还提供了一种数据交互装置,应用于第一终端设备,参考图4所示,数据交互装置包括:接收模块10、密钥获取模块20、数据获取模块30和生成模块40。
122.其中,接收模块10用于接收第二终端设备发送的读指令,读指令包括第一命令头和数据域,第一命令头包括读命令、第一参数和第二参数,第一参数用于指示待读取文件的获取方式,待读取文件的文件属性用于指示读密钥,第二参数用于指示待读取文件的起始偏移地址,数据域包括随机数和第二命令头,第二命令头包括与待读取数据对应的待执行命令;数据获取模块30用于根据第一参数获取待读取文件,并根据第二参数从待读取文件中读取待读取数据;密钥获取模块20用于根据待读取文件的文件属性获取读密钥;生成模块40用于根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作。
123.在一些实施例中,数据域还包括分散因子,密钥获取模块20还用于:根据分散因子对读密钥进行分散化处理。
124.在一些实施例中,数据获取模块30还用于:对第二命令头进行校验,并在校验通过后根据第二参数从待读取文件中读取待读取数据。
125.在一些实施例中,第二命令头还包括第三参数,第三参数用于指示待读取数据的待更新位置,数据获取模块30还用于:当确定待执行命令为更新二进制文件命令时,若第三参数与第二参数相同,则校验通过;当确定待执行命令为更新记录文件命令时,若第三参数为预设参数,则校验通过;当确定待执行命令不为更新二进制文件命令和更新记录文件命令时,直接校验通过。
126.在一些实施例中,生成模块40具体用于:根据随机数生成初始校验码;根据初始校验码和读密钥中的认证密钥对第二命令头和待读取数据进行校验计算以获得校验数据;根据待读取数据和校验数据生成安全数据。
127.在一些实施例中,生成模块40具体用于:根据读密钥中的加密密钥对第二命令头和待读取数据进行加密,以获得密文数据;根据密文数据生成安全数据。
128.在一些实施例中,生成模块40具体用于:根据读密钥中的加密密钥对待读取数据进行加密,以获得密文数据;根据随机数生成初始校验码;根据初始校验码和读密钥中的认证密钥对第二命令头和密文数据进行校验计算以获得校验数据;根据密文数据和校验数据生成安全数据。
129.在一些实施例中,生成模块40具体用于:当采用des算法进行校验计算以获得校验数据时,对随机数进行多字节补位以生成初始校验码;当采用国密算法进行校验计算以获得校验数据时,先对随机数进行多字节补位以获得补位随机数,再对补位随机数取反,以及根据取反前的补位随机数和取反后的补位随机数生成初始校验码。
130.在一些实施例中,第一终端设备为电表、第二终端设备为电卡;或者,第一终端设备为电卡,第二终端设备为电表;或者,第一终端设备为电表,第二终端设备为主站。
131.需要说明的是,关于本技术的数据交互装置可参考本技术的关于数据交互方法的描述,具体这里不再赘述。
132.根据本发明实施例的数据交互装置,通过在读指令中设置第一参数用于指示待读取文件的获取方式,且该待读取文件的文件属性用于指示读密钥,并设置第二参数用于指示待读取文件的起始偏移地址,以及设置随机数和具有与待读取数据对应的待执行命令的第二命令头,并在第一终端设备接收到读指令后,根据第一参数获取待读取文件,并根据第二参数从待读取文件读取待读取数据,以及根据待读取文件的文件属性获取读密钥,并根据随机数和/或读密钥对第二命令头和待读取数据进行处理生成安全数据,并将安全数据发送至第二终端设备以便第二终端设备根据待执行命令对待读取数据执行相应的操作,不仅能够有效保证数据信息的安全性和完整性,而且可以有效提高数据信息交换的快速性和高效性。
133.需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行命令的定序列表,可以具体实现在任何计算机可读介质中,以供命令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从命令执行系统、装置或设备取命令并执行命令的系统)使用,或结合这些命令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供命令执行系统、装置或设备或结合这些命令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
134.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的命令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
135.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
136.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
137.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
138.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献