CN117172924B - 燃气交易方法、装置、计算机设备、芯片及存储介质 - Google Patents
燃气交易方法、装置、计算机设备、芯片及存储介质 Download PDFInfo
- Publication number
- CN117172924B CN117172924B CN202311452208.2A CN202311452208A CN117172924B CN 117172924 B CN117172924 B CN 117172924B CN 202311452208 A CN202311452208 A CN 202311452208A CN 117172924 B CN117172924 B CN 117172924B
- Authority
- CN
- China
- Prior art keywords
- data
- gas
- transaction
- command
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 239000007789 gas Substances 0.000 claims abstract description 1107
- 230000004044 response Effects 0.000 claims abstract description 124
- 239000002737 fuel gas Substances 0.000 claims abstract description 5
- 238000012795 verification Methods 0.000 claims description 153
- 238000012545 processing Methods 0.000 claims description 36
- 238000007872 degassing Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 16
- 239000006185 dispersion Substances 0.000 claims description 12
- 238000010130 dispersion processing Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 8
- 238000010926 purge Methods 0.000 description 8
- 241000030538 Thecla Species 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000007812 deficiency Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 241000764238 Isis Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Landscapes
- Measuring Volume Flow (AREA)
Abstract
本发明公开了一种燃气交易方法、装置、计算机设备、芯片及存储介质,所述方法包括:获取主站发送的燃气交易命令;其中,所述燃气交易命令包含有数据安全状态;根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据;根据所述燃气交易数据对所述燃气气量文件中包含的所述气量余额数据和所述交易气量数据进行更新,得到所述燃气交易命令对应的交易响应内容,以将所述交易响应内容发送至所述主站。由此保证交易数据的完整性和可靠性,有效提高供气可靠性和供气服务水平。
Description
技术领域
本发明涉及智能燃气表技术领域,尤其涉及一种燃气交易方法、装置、计算机设备、芯片及存储介质。
背景技术
随着智能用气技术的发展,燃气公司实行了“先买气,后用气”的燃气交易规则。用气客户可根据自身的用气需求,实现“购多少,用多少,即购即用”,以此来有效促进广大用气客户按需购气和合理安排用气。
相关技术中,用气客户通常需要持燃气表IC卡到指定地点完成充值购气等交易过程。然而,通过IC卡进行燃气充值等交易的方式存在因网络故障等因素导致的交易不完整、不可靠等问题,燃气交易的可靠性有待提高。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种燃气交易方法,能够更为便捷地实现燃气表的远程燃气交易操作,保证燃气交易的完整性、可靠性。
本发明的第二个目的在于提出一种燃气交易装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种芯片。
本发明的第五个目的在于提出一种计算机可读存储介质。
为达到上述目的,本发明第一方面实施方式提出了一种燃气交易方法,应用于安全芯片,所述安全芯片内嵌至燃气表,所述安全芯片内预先建立有燃气气量文件,所述燃气气量文件用于记录所述燃气表的气量余额数据和交易气量数据;所述方法包括:获取主站发送的燃气交易命令;其中,所述燃气交易命令包含有数据安全状态;根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据;根据所述燃气交易数据对所述燃气气量文件中包含的所述气量余额数据和所述交易气量数据进行更新,得到所述燃气交易命令对应的交易响应内容,以将所述交易响应内容发送至所述主站。
根据本发明的一个实施方式,所述燃气交易命令包括充气命令,所述充气命令包含有第一数据域,所述数据安全状态包括充气数据安全状态;所述燃气交易数据包括充气气量数据;所述根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据,包括:若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为明文状态,根据所述明文状态对所述第一数据域进行解析,得到所述充气气量数据;或者,若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为密文状态,根据所述密文状态对所述第一数据域进行解析,得到所述第一数据域中包含的密文数据;利用所述燃气表对应的解密密钥对所述密文数据进行解密,得到所述充气气量数据。
根据本发明的一个实施方式,所述明文状态包括第一明文状态或第二明文状态;所述若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为明文状态,根据所述明文状态对所述第一数据域进行解析,得到所述充气气量数据,包括:若根据所述充气命令确定所述充气数据安全状态为所述第一明文状态,根据所述第一明文状态对所述第一数据域进行解析,得到所述充气气量数据;或者,若根据所述充气命令确定所述充气数据安全状态为所述第二明文状态,根据所述第二明文状态对所述第一数据域进行解析,得到所述充气气量数据和所述第一数据域中包含的第一消息验证码;其中,所述交易响应内容包括充气交易响应内容,所述充气交易响应内容在所述第一消息验证码通过验证的情况下,根据所述充气气量数据对所述气量余额数据和所述交易气量数据更新得到。
根据本发明的一个实施方式,若根据所述充气命令确定所述充气数据安全状态为所述第二明文状态,所述第一数据域中还包含有第一离散数据;通过以下方式获得所述充气交易响应内容:根据所述第一离散数据进行密钥分散化处理,得到第一分散化结果;若所述第一分散化结果表明分散化处理成功,且所述第一消息验证码通过验证,根据所述充气气量数据对所述气量余额数据和所述交易气量数据进行更新,得到所述充气交易响应内容。
根据本发明的一个实施方式,所述密文状态包括第一密文状态或者第二密文状态;所述若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为密文状态,根据所述密文状态对所述第一数据域进行解析,得到所述第一数据域中包含的密文数据,包括:若根据所述充气命令确定所述充气数据安全状态为所述第一密文状态,根据所述第一密文状态对所述第一数据域进行解析,得到所述密文数据;或者,若根据所述充气命令确定所述充气数据安全状态为所述第二密文状态,根据所述第二密文状态对所述第一数据域进行解析,得到所述密文数据和所述第一数据域中包含的第二消息验证码;其中,所述交易响应内容在所述第二消息验证码通过验证的情况下,根据所述充气气量数据对所述气量余额数据和所述交易气量数据更新得到。
根据本发明的一个实施方式,所述交易响应内容包括充气交易响应内容;通过以下方式获得所述充气交易响应内容:若根据所述充气命令确定所述充气数据安全状态为所述第一密文状态,根据所述第一数据域中包含的第二离散数据进行密钥分散化处理,得到第二分散化结果;若所述第二分散化结果表明分散化处理成功,根据所述充气气量数据对所述气量余额数据和所述交易气量数据进行更新,得到所述充气交易响应内容;或者,若根据所述充气命令确定所述充气数据安全状态为所述第二密文状态,根据所述第一数据域中包含的第三离散数据进行密钥分散化处理,得到第三分散化结果;若所述第三分散化结果表明分散化处理成功,且所述第二消息验证码通过验证,根据所述充气气量数据对所述气量余额数据和所述交易气量数据进行更新,得到所述充气交易响应内容。
根据本发明的一个实施方式,所述燃气交易命令包括退气命令,所述退气命令包含有第二数据域,所述退气命令包含的数据安全状态为明文状态;所述根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据,包括:根据所述明文状态对所述第二数据域进行解析,得到退气气量数据;其中,所述燃气交易数据包括所述退气气量数据。
根据本发明的一个实施方式,所述安全芯片内还预先建立有用户编号文件,所述用户编号文件中存储有第一用户编号;所述燃气交易数据包括第二用户编号;所述根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述燃气交易命令对应的交易响应内容,包括:若所述第二用户编号与所述第一用户编号相同,根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述交易响应内容。
根据本发明的一个实施方式,所述燃气气量文件中包含有第一计数器数据,所述燃气交易数据还包括第二计数器数据;所述若所述第二用户编号与所述第一用户编号相同,根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述交易响应内容,包括:若所述第二用户编号与所述第一用户编号相同,且所述第二计数器数据与所述第一计数器数据的差值为1,根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述交易响应内容。
根据本发明的一个实施方式,所述燃气交易命令包括用气命令,所述用气命令包含有第三数据域,所述数据安全状态包括用气数据安全状态;所述燃气交易数据包括用气气量数据;所述根据所述数据安全状态对所述燃气交易命令包含的数据域进行解析,得到所述数据域中包含的燃气交易数据,包括:若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为不带校验值状态,根据所述不带校验值状态对所述第三数据域进行解析,得到所述用气气量数据;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带校验值状态,根据所述带校验值状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的校验值;其中,所述交易响应内容在所述校验值通过校验的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带验证码状态,根据所述带验证码状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的第三消息验证码;其中,所述交易响应内容在所述第三消息验证码通过验证的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到。
为达到上述目的,本发明第二方面实施方式提出了一种燃气交易装置,应用于安全芯片,所述安全芯片内嵌至燃气表,所述安全芯片内预先建立有燃气气量文件,所述燃气气量文件用于记录所述燃气表的气量余额数据和交易气量数据;所述装置包括:燃气交易命令获取模块,用于获取主站发送的燃气交易命令;其中,所述燃气交易命令包含有数据安全状态;燃气交易数据获取模块,用于根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据;交易响应内容获取模块,用于根据所述燃气交易数据对所述燃气气量文件中包含的所述气量余额数据和所述交易气量数据进行更新,得到所述燃气交易命令对应的交易响应内容,以将所述交易响应内容发送至所述主站。
根据本发明的一个实施方式,所述燃气交易命令包括充气命令,所述充气命令包含有第一数据域,所述数据安全状态包括充气数据安全状态;所述燃气交易数据包括充气气量数据;所述燃气交易数据获取模块,还用于若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为明文状态,根据所述明文状态对所述第一数据域进行解析,得到所述充气气量数据;或者,若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为密文状态,根据所述密文状态对所述第一数据域进行解析,得到所述第一数据域中包含的密文数据;利用所述燃气表对应的解密密钥对所述密文数据进行解密,得到所述充气气量数据。
根据本发明的一个实施方式,所述燃气交易命令包括退气命令,所述退气命令包含有第二数据域,所述退气命令包含的数据安全状态为明文状态;所述燃气交易数据获取模块,还用于根据所述明文状态对所述第二数据域进行解析,得到退气气量数据;其中,所述燃气交易数据包括所述退气气量数据。
根据本发明的一个实施方式,所述燃气交易命令包括用气命令,所述用气命令包含有第三数据域,所述数据安全状态包括用气数据安全状态;所述燃气交易数据包括用气气量数据;所述燃气交易数据获取模块,还用于若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为不带校验值状态,根据所述不带校验值状态对所述第三数据域进行解析,得到所述用气气量数据;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带校验值状态,根据所述带校验值状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的校验值;其中,所述交易响应内容在所述校验值通过校验的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带验证码状态,根据所述带验证码状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的第三消息验证码;其中,所述交易响应内容在所述第三消息验证码通过验证的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到。
为达到上述目的,本发明第三方面实施方式提出了一种计算机设备,包括存储器和处理器,所述存储器存储有第一计算机程序,所述处理器执行所述第一计算机程序时实现前述任一项实施方式所述的燃气交易方法的步骤。
为达到上述目的,本发明第四方面实施方式提出了一种芯片,包括存储单元和处理单元,所述存储单元存储有第二计算机程序,所述处理单元执行所述第二计算机程序时实现前述任一项实施方式所述的燃气交易方法的步骤。
为达到上述目的,本发明第五方面实施方式提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一项实施方式所述的燃气交易方法的步骤。
根据本发明提供的多个实施方式,通过在内嵌至燃气表的安全芯片中预先建立燃气气量文件,用于记录燃气表的气量余额数据和燃气交易时的交易气量数据等,并通过设计燃气交易命令,用于指示安全芯片完成对燃气表的燃气交易操作。其中,燃气交易命令包含有数据安全状态,用于指示安全芯片解析燃气交易命令以获取燃气交易数据的方式。由此,可以完成燃气表的远程燃气交易操作,更为便捷地实现“先买气,后用气”。同时,燃气交易命令中的数据安全状态可以根据实际应用场景进行选择和确定,以此保证交易数据的安全性和完整性,提高供气可靠性和供气服务水平。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为根据本说明书的实施方式提供的燃气交易方法的流程示意图。
图2为根据本说明书的实施方式提供的获取充气交易响应内容的流程示意图。
图3a为根据本说明书的实施方式提供的安全芯片执行充气命令的流程示意图。
图3b为根据本说明书的实施方式提供的安全芯片执行退气命令的流程示意图。
图4为根据本说明书的实施方式提供的安全芯片执行用气命令的流程示意图。
图5为根据本说明书的实施方式提供的燃气交易装置的结构框图。
图6为根据本说明书的实施方式提供的计算机设备的结构框图。
图7为根据本说明书的实施方式提供的芯片的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
“先买后用”是商品交易的基本规则,燃气作为一种商品,也适用这个规则。然而,长久以来,由于受到相关技术瓶颈的制约,燃气的交易方式都是“先用气后交钱”,无法遵循一般商品交易的“先买后用”的基本规则。传统的燃气费用缴纳方法通常是由燃气抄表工到现场挨家对每家的燃气表进行抄表,然后统一到相关单位进行燃气费用缴纳,这样的燃气费用缴纳方法导致办事流程较为复杂,从而增加了大量的人力成本。
目前,随着智能用气技术的发展,通过智能燃气表将“互联网+”和供气服务融为一体,使得传统的定期手工抄燃气表、定期人工交费的气费结算模式逐步转变为具有远程自动抄表、实时计费、预警提醒、随时购气、信息自动发送等功能的新型互动模式,燃气公司也实行了“先买气,后用气”的燃气交易规则。“充值购气”可以促进用气客户合理用气、节约用气。用气客户可根据自身的用气需求,实现“购多少,用多少,即购即用”,以此来有效促进广大用气客户按需购气和合理安排用气,并可以促进用气客户灵活安排生产、生活用气资金,以及及时关注气费缴纳情况,避免因气费缴纳不及时影响个人或企业的用气信用记录和延期缴费需要承担的滞纳金损失。同时,供气企业可以将节省出的人力、物力投入到燃气网建设、供气服务优化中,以提高供气可靠性和供气服务水平。
相关技术中,用气客户通常需要持燃气表IC卡到指定地点完成充值购气等交易过程。然而,通过IC卡进行燃气充值等交易的方式较为复杂,且存在因网络故障或人为断网等因素导致的交易不完整、不可靠等问题,以及存在补卡骗气等现象。
为了完成燃气的远程燃气交易过程,更为便捷地实现“先买气,后用气”,并保证燃气交易的安全性、完整性、可靠性,有必要提出一种燃气交易方法、装置、计算机设备、芯片及存储介质。该方法通过在内嵌至燃气表的安全芯片中预先建立燃气气量文件,用于记录燃气表的气量余额数据和燃气交易时的交易气量数据等,并通过设计燃气交易命令,用于指示安全芯片完成对燃气表的燃气交易操作。其中,燃气交易命令包含有数据安全状态,用于指示安全芯片解析燃气交易命令以获取燃气交易数据的方式,可以包括明文状态、密文状态、带校验值状态、带验证码状态等。安全芯片接收到主站发送的燃气交易命令后,可以根据数据安全状态对燃气交易命令进行解析以获取燃气交易数据,并可以根据燃气交易数据对燃气气量文件中包含的气量余额数据和交易气量数据等进行更新,得到燃气交易命令对应的交易响应内容。安全芯片将交易响应内容发送给主站进行存储等,以此完成燃气表的远程燃气交易操作,更为便捷地实现“先买气,后用气”。同时,燃气交易命令中的数据安全状态可以根据实际应用场景进行选择和确定,以此保证交易数据的安全性、完整性和可靠性,从而提高供气可靠性和供气服务水平。
本说明书实施方式提供一种燃气交易方法,应用于安全芯片,安全芯片内嵌至燃气表,安全芯片内预先建立有燃气气量文件,燃气气量文件用于记录燃气表的气量余额数据和交易气量数据。参考图1所示,燃气交易方法可以包括以下步骤。
S110、获取主站发送的燃气交易命令;其中,燃气交易命令包含有数据安全状态。
S120、根据数据安全状态对燃气交易命令进行解析,得到燃气交易数据。
S130、根据燃气交易数据对燃气气量文件中包含的气量余额数据和交易气量数据进行更新,得到燃气交易命令对应的交易响应内容,以将交易响应内容发送至主站。
其中,燃气表为智能燃气表。燃气气量文件是记录文件,也可以称为钱包文件或钱包记录文件。主站是与燃气表进行数据交互的远程服务端,燃气交易命令可以用于指示安全芯片执行相关的燃气交易操作,包括燃气充值、消费、退费(或者,燃气充气、用气、退气)等交易操作。
数据安全状态可以用于表明燃气交易命令中的燃气交易数据的安全性状态,可以通过燃气交易命令中的相关命令代码进行指定,以使安全芯片可以根据该安全性状态对燃气交易命令进行解析。
燃气交易数据是与燃气交易操作相关的数据,可以包括需要交易的燃气气量值。交易响应内容是安全芯片按照燃气交易命令执行相关的燃气交易操作后得到的需要返回给主站的响应内容。
具体地,在执行具体交易前,可以事先在燃气表内嵌的安全芯片中建立燃气气量文件,用于记录对应燃气表的气量余额数据和交易气量数据。当主站需要指示燃气表完成相关燃气交易时,可以根据需要完成的燃气交易生成相应的燃气交易命令,并发送给燃气表。燃气表的主控芯片接收到主站发送的燃气交易命令后可以将燃气交易命令发送给燃气表内嵌的安全芯片。
安全芯片获取燃气交易命令后可以对燃气交易命令中的相关命令代码进行检查,以确定燃气交易命令中包含的数据安全状态,并根据数据安全状态对燃气交易命令进行解析得到燃气交易数据。安全芯片根据燃气交易数据可以得到需要交易的燃气气量值,并根据燃气气量值对燃气气量文件中包含的气量余额数据和交易气量数据进行更新,得到需要返回给主站的交易响应内容。安全芯片将交易响应内容发送给主站,以完成相关燃气交易操作。
在一些实施例中,燃气交易命令可以包括三条命令:充值采用充气命令,消费采用用气命令,以及退费采用退气命令。通过充气命令、用气命令和退气命令三条指令,可以完成智能燃气表的充值、消费、退费交易,以便捷地实现“先买气,后用气”。数据安全状态可以包括明文状态、密文状态、带校验值状态等。
示例性地,燃气交易命令用于指示安全芯片执行交易燃气气量5立方米(比如燃气充值5立方米或者燃气消费5立方米等)的交易操作。假设安全芯片接收到主站发送的燃气交易命令后确定数据安全状态为明文状态,则安全芯片可以根据明文状态以明文方式对燃气交易命令进行解析,得到燃气交易数据。安全芯片根据燃气交易数据可以得到需要交易的燃气气量值为5立方米,并对燃气气量文件中的气量余额数据和交易气量数据进行更新,以将气量余额数据更新为旧的气量余额数据与燃气交易数据的和(包括旧的气量余额数据加上5立方米,或者,旧的气量余额数据减去5立方米),将交易气量数据更新为交易气量5立方米。安全芯片可以根据更新后的气量余额数据和交易气量数据生成相应的响应报文,作为交易响应内容,并发送给主站。
示例性地,燃气交易命令用于指示安全芯片执行交易燃气气量5立方米的交易操作。假设安全芯片接收到主站发送的燃气交易命令后确定数据安全状态为密文状态,则安全芯片可以根据密文状态以密文方式对燃气交易命令进行解析,得到包含密文形式的燃气交易数据的密文数据,并可以对密文数据进行解密以得到燃气交易数据。安全芯片根据燃气交易数据可以得到需要交易的燃气气量值为5立方米,并将气量余额数据更新为旧的气量余额数据与燃气交易数据的和,以及将交易气量数据更新为交易气量5立方米。安全芯片根据更新后的气量余额数据和交易气量数据得到相应的交易响应内容,并发送给主站。
示例性地,燃气交易命令用于指示安全芯片执行交易燃气气量5立方米的交易操作。假设安全芯片接收到主站发送的燃气交易命令后确定数据安全状态为带校验值状态,表明需要对燃气交易命令中的校验值进行校验。安全芯片可以根据带校验值状态以带校验值方式对燃气交易命令进行解析,得到燃气交易数据和校验值。安全芯片对校验值进行校验,并在校验值通过校验的情况下可以根据燃气交易数据得到需要交易的燃气气量值为5立方米,并将气量余额数据更新为旧的气量余额数据与燃气交易数据的和,以及将交易气量数据更新为交易气量5立方米。安全芯片根据更新后的气量余额数据和交易气量数据得到相应的交易响应内容,并发送给主站。
进一步地,智能燃气表的主控芯片可以通过每天自动抄表等操作,实时获取燃气表安全芯片中燃气气量文件记录的气量余额等信息。
需要说明的是,燃气气量文件中的气量余额数据和交易气量数据初始化值为0。在安全芯片首次执行燃气交易操作更新燃气气量文件中的气量余额数据和交易气量数据前,可以打开燃气表中的相关文件以获取到燃气表中的初始的气量余额数据等,以对该初始的气量余额数据等进行更新。
上述实施方式中,通过在燃气表内嵌的安全芯片中预先建立用于记录燃气表的气量余额数据和交易气量数据的燃气气量文件,并通过燃气交易命令和燃气气量文件完成对智能燃气表的远程燃气交易操作,可以包括充值、消费、退费交易等,以便捷地实现“先买气,后用气”。同时,燃气交易命令包含有用于指示安全芯片对燃气交易命令进行解析的数据安全状态,数据安全状态可以根据实际应用场景进行选择和确定,以此来保证交易数据的安全性、完整性和可靠性,有效提高供气可靠性和供气服务水平。
在一些实施方式中,燃气交易命令包括充气命令,充气命令包含有第一数据域,数据安全状态包括充气数据安全状态;燃气交易数据包括充气气量数据。根据数据安全状态对燃气交易命令进行解析,得到燃气交易数据,可以包括:若根据充气命令确定充气命令包含的充气数据安全状态为明文状态,根据明文状态对第一数据域进行解析,得到充气气量数据。
或者,若根据充气命令确定充气命令包含的充气数据安全状态为密文状态,根据密文状态对第一数据域进行解析,得到第一数据域中包含的密文数据;利用燃气表对应的解密密钥对密文数据进行解密,得到充气气量数据。
其中,充气命令可以用于指示安全芯片完成燃气充值操作(或者,燃气充气操作)。充气气量数据可以包括需要充值的燃气气量值,也可以被称为新增气量数据,被携带在第一数据域中。
若充气数据安全状态为密文状态,第一数据域中的密文数据包含有密文形式的充气气量数据。
具体地,安全芯片获取充气命令后,可以根据充气命令中的相关命令代码确定充气命令中包含的充气数据安全状态。若确定充气数据安全状态为明文状态,则安全芯片可以根据明文状态以明文方式对充气命令的第一数据域进行解析,得到明文形式的充气气量数据。
若确定充气数据安全状态为密文状态,则安全芯片可以根据密文状态以密文方式对充气命令的第一数据域进行解析,得到第一数据域中的密文数据,并可以利用燃气表对应的解密密钥对得到的密文数据进行解密,以得到解密后的充气气量数据。
在一些实施例中,充气命令可以采用如表1所示的命令格式进行设计。
表1
其中,CLA为命令类别,用1字节表示,其值可以为“80”或“84”,用于表示该报文为命令报文;INS为命令类别中的命令代码,用1字节表示,其值可以是“32”,表示该报文用于燃气充值,即该报文为充气命令报文;P1为第一参数,用于指示数据安全状态;P2为第二参数,表示采用SFI(Short File Identifier,短文件标识符)方式获取待读取文件;Lc表示命令报文中数据域DATA的长度;DATA为数据域,可以包括明文形式的充气气量数据或密文形式的充气气量数据,具体可以根据参数P1确定;Le表示期望返回的字节数,可以缺省。
示例性地,主站向燃气表下发充气命令8032001404 00112233。燃气表的安全芯片获取到该充气命令后,对命令代码“8032001404”进行检查,可以确定充气数据安全状态为明文状态。安全芯片根据明文状态对该充气命令进行解析,可以得到明文形式的需要交易的充气气量数据为“00112233”。
示例性地,主站向燃气表下发充气命令8432021408 333E6C718818C27B。燃气表的安全芯片获取到该充气命令后,对命令代码“8432021408”进行检查,可以确定充气数据安全状态为密文状态。安全芯片根据密文状态对该充气命令进行解析,可以得到密文数据“333E6C718818C27B”。安全芯片利用燃气表对应的解密密钥对该密文数据进行解密,可以得到解密后的充气气量数据。
需要说明的是,充气数据安全状态为明文状态或密文状态时,DATA数据域中均还可以携带有验证码或者校验码。燃气表对应的解密密钥可以是燃气表与主站事先约定好或者事先存储在燃气表中的密钥,也可以是通过密钥分散等方法计算得到的密钥。
本说明书中,命令报文中的P1、P2、Lc以及Data数据域的具体内容可以根据实际应用情况进行相应的调整,但是命令报文的设计方法与本说明书中的设计方法类似。
进一步地,安全芯片可以根据充气气量数据对燃气气量文件中包含的气量余额数据和交易气量数据进行更新,以将气量余额数据更新为旧的气量余额数据加上充气气量数据得到的值,将交易气量数据更新为新增的充气气量数据(即新增气量数据),并得到相应的交易响应内容。
在有一些实施例中,充气命令对应的交易响应内容可以是安全芯片根据更新后的气量余额数据和新增气量数据生成的响应报文,可以采用如表2所示的报文格式进行设计。
表2
可以理解的是,充气气量数据的最小充气单位为1立方米,充气气量数据可以为0,充气命令也可以称为充气指令。
在一些实施方式中,明文状态包括第一明文状态或第二明文状态。若根据充气命令确定充气命令包含的充气数据安全状态为明文状态,根据明文状态对第一数据域进行解析,得到充气气量数据,可以包括:若根据充气命令确定充气数据安全状态为第一明文状态,根据第一明文状态对第一数据域进行解析,得到充气气量数据。
或者,若根据充气命令确定充气数据安全状态为第二明文状态,根据第二明文状态对第一数据域进行解析,得到充气气量数据和第一数据域中包含的第一消息验证码;其中,交易响应内容包括充气交易响应内容,充气交易响应内容在第一消息验证码通过验证的情况下,根据充气气量数据对气量余额数据和交易气量数据更新得到。
其中,第一消息验证码即为MAC验证码。第一明文状态可以用于表示充气命令的第一数据域中仅包含明文形式的充气气量数据,即,主站以明文的方式根据需要交易的充气气量数据生成充气命令并下发给燃气表。
第二明文状态可以用于表示充气命令的第一数据域中包含明文形式的充气气量数据和第一消息验证码,即,主站以明文+MAC的方式根据需要交易的充气气量数据生成充气命令并下发给燃气表。
具体地,安全芯片获取充气命令后,若根据充气命令确定充气数据安全状态为第一明文状态,则安全芯片可以根据第一明文状态以明文方式对充气命令的第一数据域进行解析,直接得到明文形式的充气气量数据。安全芯片根据充气气量数据对气量余额数据和交易气量数据进行更新可以得到相应的充气交易响应内容。
若确定充气数据安全状态为第二明文状态,则安全芯片可以根据第二明文状态以明文+MAC的方式对充气命令的第一数据域进行解析,得到第一数据域中明文形式的充气气量数据和第一消息验证码。安全芯片对第一消息验证码进行验证,若第一消息验证码通过验证,则安全芯片可以根据充气气量数据对气量余额数据和交易气量数据进行更新,以得到充气交易响应内容。
示例性地,充气命令可以采用如表3所示的命令格式进行设计。
表3
如表3所示,若充气命令中CLA+P1的数值为“80”+“00”,表示主站以明文的方式生成充气命令并下发给燃气表,充气数据安全状态为第一明文状态,DATA数据域中包含明文状态的充气气量数据;若充气命令中CLA+P1的数值为“84”+“01”,表示主站以明文+MAC的方式生成充气命令并下发给燃气表,充气数据安全状态为第二明文状态,DATA数据域中包含明文状态的充气气量数据和MAC消息验证码。
示例性地,主站向燃气表下发充气命令8032001404 00112233。燃气表的安全芯片获取到该充气命令后,根据命令代码“8032001404”可以确定CLA和P1的数值为“80”+“00”,从而可以确定充气数据安全状态为第一明文状态。安全芯片根据第一明文状态对该充气命令进行解析,可以得到明文形式的需要交易的充气气量数据为“00112233”。安全芯片根据该充气气量数据对气量余额数据和交易气量数据进行更新可以得到相应的充气交易响应内容。
示例性地,主站向燃气表下发充气命令8432011408 00112233 8F4E9C25。燃气表的安全芯片获取到该充气命令后,根据命令代码“8432011408”可以确定CLA和P1的数值为“84”+“01”,从而可以确定充气数据安全状态为第二明文状态。安全芯片根据第二明文状态对该充气命令进行解析,可以得到数据域中的MAC验证码为“8F4E9C25”,以及明文形式的需要交易的充气气量数据为“00112233”。安全芯片对MAC验证码“8F4E9C25”进行验证,若该验证码通过验证,则安全芯片可以根据该充气气量数据对气量余额数据和交易气量数据进行更新,以得到相应的充气交易响应内容。
需要说明的是,若充气数据安全状态为第一明文状态,也可以理解为安全芯片以明文方式进行燃气充气;若充气数据安全状态为第二明文状态,也可以理解为安全芯片以明文+MAC方式进行燃气充气。
对第一消息验证码进行验证的密钥可以是燃气表与主站事先约定好或者事先存储在燃气表中的密钥,也可以是通过密钥分散等方法计算得到的密钥。
上述实施方式中命令的明文、明文+MAC的解析方法,可以参考相关技术中关于一种智能卡的基于模式控制字方式的安全传输方法中提供的解析方法,本说明书中仅采用该方法进行充气命令的设计,具体这里不再赘述。
在一些实施方式中,若根据充气命令确定充气数据安全状态为第二明文状态,第一数据域中还包含有第一离散数据。参考图2所示,可以通过以下方式获得充气交易响应内容。
S210、根据第一离散数据进行密钥分散化处理,得到第一分散化结果。
S220、若第一分散化结果表明分散化处理成功,且第一消息验证码通过验证,根据充气气量数据对气量余额数据和交易气量数据进行更新,得到充气交易响应内容。
其中,第一离散数据可以事先存储在主站。
具体地,若主站以明文+MAC的方式生成充气命令,主站可以获取事先存储的燃气表的第一离散数据,并将第一离散数据携带在充气命令中,以将包含有明文形式的充气气量数据、第一消息验证码和第一离散数据的充气命令发送给燃气表。
燃气表的安全芯片获取到主站发送的充气命令后,可以根据充气命令确定充气数据安全状态为第二明文状态,并根据第二明文状态对充气命令进行解析,得到充气气量数据、第一消息验证码和第一离散数据。安全芯片根据第一离散数据可以计算得到燃气表的专用密钥,并对该专用密钥进行密钥分散化处理,得到第一分散化结果。若第一分散化结果表明密钥分散化处理成功,且第一消息验证码通过验证,则安全芯片可以根据充气气量数据对气量余额数据和交易气量数据进行更新,得到充气交易响应内容。
在一些实施例中,第一离散数据的长度可以是8的倍数。
示例性地,充气命令可以采用如表4所示的命令格式进行设计。
表4
如表4所示,若充气命令中CLA+P1的数值为“84”+“01”,表示主站以明文+MAC的方式生成充气命令并下发给燃气表,充气数据安全状态为第二明文状态,充气命令的DATA数据域中可以包含明文状态的充气气量数据、MAC消息验证码,以及长度为的离散数据。
示例性地,主站向燃气表下发充气命令8432011410 00112233 8F4E9C251122334455667788。燃气表内嵌的安全芯片获取到该充气命令后,执行该充气命令,确定命令代码中CLA+P1的数值为“84”+“01”,从而可以确定充气数据安全状态为第二明文状态,以根据第二明文状态对该充气命令进行解析,得到充气气量数据“00112233”、MAC验证码“8F4E9C25”,以及离散数据“1122334455667788”。
安全芯片首先可以利用离散数据“1122334455667788”计算得到专用密钥,并将专用密钥进行密钥分散化处理,得到第一分散化结果。在第一分散化结果表明分散化处理成功的情况下,安全芯片执行充气操作,根据充气气量数据对气量余额数据和交易气量数据进行更新,并向主站返回更新后的气量余额数据和交易气量数据(即新增气量数据)。
在还有一些实施例中,主站可以根据第一离散数据计算得到燃气表的专用密钥,并利用计算得到的专用密钥对充气气量数据进行消息验证码计算,以得到第一消息验证码。安全芯片可以利用根据第一离散数据计算得到的燃气表的专用密钥对第一消息验证码进行验证。
需要说明的是,本说明书中对MAC验证码进行验证的方法可以采用相关技术中的验证方法,以及本说明书中的密钥分散化处理方法可以采用相关技术中的分散化处理方法,本说明书中不作具体的限定。本说明书中的离散数据也可以称为分散因子。
在一些实施方式中,密文状态包括第一密文状态或者第二密文状态。若根据充气命令确定充气命令包含的充气数据安全状态为密文状态,根据密文状态对第一数据域进行解析,得到第一数据域中包含的密文数据,可以包括:若根据充气命令确定充气数据安全状态为第一密文状态,根据第一密文状态对第一数据域进行解析,得到密文数据。
或者,若根据充气命令确定充气数据安全状态为第二密文状态,根据第二密文状态对第一数据域进行解析,得到密文数据和第一数据域中包含的第二消息验证码;其中,交易响应内容在第二消息验证码通过验证的情况下,根据充气气量数据对气量余额数据和交易气量数据更新得到。
其中,第二消息验证码即为MAC验证码。第一密文状态可以用于表示充气命令的第一数据域中包含密文形式的充气气量数据,即,主站以密文的方式根据需要交易的充气气量数据生成充气命令并下发给燃气表。
第二密文状态可以用于表示充气命令的第一数据域中包含密文形式的充气气量数据和第二消息验证码,即,主站以密文+MAC的方式根据需要交易的充气气量数据生成充气命令并下发给燃气表。
具体地,安全芯片获取充气命令后,若根据充气命令确定充气数据安全状态为第一密文状态,则安全芯片可以根据第一密文状态以密文方式对充气命令的第一数据域进行解析,得到密文数据,以对密文数据进行解密得到充气气量数据。安全芯片根据充气气量数据对气量余额数据和交易气量数据进行更新可以得到相应的充气交易响应内容。
若确定充气数据安全状态为第二密文状态,则安全芯片可以根据第二密文状态以密文+MAC的方式对充气命令的第一数据域进行解析,得到第一数据域中的密文数据和第二消息验证码。安全芯片对第二消息验证码进行验证,若第二消息验证码通过验证,则安全芯片可以对密文数据进行解密以得到充气气量数据,并根据充气气量数据对气量余额数据和交易气量数据进行更新,以得到充气交易响应内容。
示例性地,充气命令可以采用如表5所示的命令格式进行设计。
表5
如表5所示,若充气命令中CLA+P1的数值为“84”+“02”,表示主站以密文的方式生成充气命令并下发给燃气表,充气数据安全状态为第一密文状态,DATA数据域中包含密文形式的充气气量数据;若充气命令中CLA+P1的数值为“84”+“03”,表示主站以密文+MAC的方式生成充气命令并下发给燃气表,充气数据安全状态为第二密文状态,DATA数据域中包含密文形式的充气气量数据和MAC消息验证码。
示例性地,主站向燃气表下发充气命令8432021408 333E6C718818C27B。燃气表的安全芯片获取到该充气命令后,根据命令代码“8432021408”可以确定CLA和P1的数值为“84”+“02”,从而可以确定充气数据安全状态为第一密文状态。安全芯片根据第一密文状态对该充气命令进行解析,可以得到密文数据“333E6C718818C27B”。安全芯片利用燃气表对应的解密密钥对该密文数据进行解密,可以得到充气气量数据,并根据该充气气量数据对气量余额数据和交易气量数据进行更新可以得到相应的充气交易响应内容。
示例性地,主站向燃气表下发充气命令843203140C 333E6C718818C27B78567E87。燃气表的安全芯片获取到该充气命令后,根据命令代码“843203140C”可以确定CLA和P1的数值为“84”+“03”,从而可以确定充气数据安全状态为第二密文状态。安全芯片根据第二密文状态对该充气命令进行解析,可以得到密文数据“333E6C718818C27B”,以及MAC验证码“78567E87”。安全芯片对MAC验证码“78567E87”进行验证,若该验证码通过验证,则安全芯片可以利用燃气表对应的解密密钥对该密文数据进行解密,可以得到充气气量数据。安全芯片根据该充气气量数据对气量余额数据和交易气量数据进行更新可以得到相应的充气交易响应内容。
需要说明的是,上述实施方式中命令的密文、密文+MAC的解析方法,可以参考相关技术中关于一种智能卡的基于模式控制字方式的安全传输方法中提供的解析方法,本说明书中仅采用该方法进行充气命令的设计,具体这里不再赘述。
若充气数据安全状态为第一密文状态,也可以理解为安全芯片以密文方式进行燃气充气;若充气数据安全状态为第二密文状态,也可以理解为安全芯片以密文+MAC方式进行燃气充气。
充气命令中充气气量数据的加密方法可以根据实际应用情况进行选择,比如3DES(Triple Data Encryption Algorithm,三重数据加密算法)、SM1算法等,可以在一定程度上增加破解的难度。若采用3DES算法,则第一数据域中密文数据的长度为8的倍数;若采用SM1算法,则第一数据域中密文数据的长度为16的倍数。
对第二消息验证码进行验证的密钥可以是燃气表与主站事先约定好或者事先存储在燃气表中的密钥,也可以是通过密钥分散等方法计算得到的密钥。
上述实施方式中,通过充气命令实现燃气表中用气量的增加,且主站可以采用明文、明文+MAC、密文、密文+MAC四种方式生成充气命令,以指示燃气表内嵌的安全芯片根据相应的方式进行燃气充值操作。用户可以根据实际应用中需要的安全等级选择相应的安全方式,以此来增加充气交易的安全性、完整性。
在一些实施方式中,交易响应内容包括充气交易响应内容。可以通过以下方式获得充气交易响应内容:若根据充气命令确定充气数据安全状态为第一密文状态,根据第一数据域中包含的第二离散数据进行密钥分散化处理,得到第二分散化结果;若第二分散化结果表明分散化处理成功,根据充气气量数据对气量余额数据和交易气量数据进行更新,得到充气交易响应内容。
或者,若根据充气命令确定充气数据安全状态为第二密文状态,根据第一数据域中包含的第三离散数据进行密钥分散化处理,得到第三分散化结果;若第三分散化结果表明分散化处理成功,且第二消息验证码通过验证,根据充气气量数据对气量余额数据和交易气量数据进行更新,得到充气交易响应内容。
其中,第二离散数据、第三离散数据可以事先存储在主站。
具体地,若主站以密文的方式生成充气命令,主站可以获取事先存储的燃气表的第二离散数据,并根据第二离散数据计算得到燃气表的专用密钥。主站可以根据相关加密算法利用该专用密钥对充气气量数据进行加密以得到密文数据,并根据密文数据和第二离散数据组织命令报文,以生成相应的充气命令发送给燃气表。
燃气表的安全芯片获取到主站发送的充气命令后,可以根据充气命令确定充气数据安全状态为第一密文状态,并根据第一密文状态对充气命令进行解析,得到密文数据和第二离散数据。安全芯片根据第二离散数据可以计算得到燃气表的专用密钥,并对该专用密钥进行密钥分散化处理,得到第二分散化结果。若第二分散化结果表明密钥分散化处理成功,则安全芯片可以对密文数据进行解密以得到充气气量数据,并根据充气气量数据对气量余额数据和交易气量数据进行更新,得到充气交易响应内容。
或者,若主站以密文+MAC的方式生成充气命令,主站可以获取事先存储的燃气表的第三离散数据,并根据第三离散数据计算得到燃气表的专用密钥。主站可以对充气气量数据进行消息验证码计算,以得到第二消息验证码,并可以根据相关加密算法利用该专用密钥对充气气量数据进行加密以得到密文数据。主站根据密文数据、第二消息验证码和第三离散数据组织命令报文,以生成相应的充气命令发送给燃气表。
燃气表的安全芯片获取到主站发送的充气命令后,可以根据充气命令确定充气数据安全状态为第二密文状态,并根据第二密文状态对充气命令进行解析,得到密文数据、第二消息验证码和第三离散数据。安全芯片根据第三离散数据可以计算得到燃气表的专用密钥,并对该专用密钥进行密钥分散化处理,得到第三分散化结果。若第三分散化结果表明密钥分散化处理成功,且第二消息验证码通过验证,则安全芯片可以对密文数据进行解密以得到充气气量数据,并根据充气气量数据对气量余额数据和交易气量数据进行更新,得到充气交易响应内容。
可以理解的是,第一离散数据、第二离散数据、第三离散数据可以相同。
示例性地,充气命令可以采用如表6所示的命令格式进行设计。如表6所示,若充气命令中CLA+P1的数值为“84”+“02”,表示主站以密文的方式生成充气命令并下发给燃气表,充气数据安全状态为第一密文状态,DATA数据域中可以包含密文形式的充气气量数据和长度为的离散数据。
若充气命令中CLA+P1的数值为“84”+“03”,表示主站以密文+MAC的方式生成充气命令并下发给燃气表,充气数据安全状态为第二密文状态,DATA数据域中可以包含密文形式的充气气量数据、MAC消息验证码,以及长度为的离散数据。
表6
示例性地,主站采用SM1算法生成密文数据,并采用附带离散数据的方式生成充气命令。主站向燃气表下发充气命令8432021418 333E6C718818C27BBD4C64B86D9EC7CC1122334455667788。燃气表内嵌的安全芯片获取到该充气命令后,执行该充气命令,确定CLA+P1的数值为“84”+“02”,从而可以确定充气数据安全状态为第一密文状态,以根据第一密文状态对该充气命令进行解析,得到密文数据“333E6C718818C27BBD4C64B86D9EC7CC”,以及离散数据“1122334455667788”。
安全芯片首先可以利用离散数据“1122334455667788”计算得到专用密钥,并可以将该专用密钥作为解密密钥,用于解析密文数据“333E6C718818C27BBD4C64B86D9EC7CC”,得到充气气量数据,并将该密钥进行密钥分散化处理,得到第二分散化结果。
在第二分散化结果表明分散化处理成功的情况下,安全芯片执行充气操作,根据充气气量数据对气量余额数据和交易气量数据进行更新,并向主站返回更新后的气量余额数据和交易气量数据(即新增气量数据)。
示例性地,主站采用SM1算法生成密文数据,并采用带MAC验证码和离散数据的方式生成充气命令。主站向燃气表下发充气命令843203141C 333E6C718818C27BBD4C64B86D9EC7CC 78567E87 1122334455667788。燃气表内嵌的安全芯片获取到该充气命令后,执行该充气命令,确定CLA+P1的数值为“84”+“03”,从而可以确定充气数据安全状态为第二密文状态,以根据第二密文状态对该充气命令进行解析,得到密文数据“333E6C718818C27BBD4C64B86D9EC7CC”、MAC验证码“78567E87”,以及离散数据“1122334455667788”。
安全芯片首先可以验证MAC验证码“78567E87”是否正确,若验证正确,则安全芯片其次可以利用离散数据“1122334455667788”计算得到专用密钥,并可以将该专用密钥作为解密密钥,用于解析密文数据“333E6C718818C27BBD4C64B86D9EC7CC”,得到充气气量数据。安全芯片将该密钥进行密钥分散化处理,得到第三分散化结果。
在第三分散化结果表明分散化处理成功,且消息验证码“78567E87”通过验证的情况下,安全芯片执行充气操作,根据充气气量数据对气量余额数据和交易气量数据进行更新,并向主站返回更新后的气量余额数据和新增气量数据。
在一些实施例中,主站可以根据第三离散数据计算得到燃气表的专用密钥,并利用计算得到的专用密钥对充气气量数据进行消息验证码计算,以得到第二消息验证码。安全芯片可以利用根据第三离散数据计算得到的燃气表的专用密钥对第二消息验证码进行验证。
上述实施方式中,通过采用密文方式或带MAC验证码的方式或密文+MAC的方式在充气命令中携带充气气量数据,以提升燃气充气交易的安全性和完整性。
在一些实施方式中,燃气交易命令包括退气命令,退气命令包含有第二数据域,退气命令包含的数据安全状态为明文状态;根据数据安全状态对燃气交易命令进行解析,得到燃气交易数据,可以包括:根据明文状态对第二数据域进行解析,得到退气气量数据;其中,燃气交易数据包括退气气量数据。
其中,退气命令可以用于指示安全芯片完成燃气退费操作(或者,燃气退气操作)。退气气量数据可以包括需要退气的燃气气量值,被携带在第二数据域中。
具体地,安全芯片获取退气命令后,可以根据退气命令中的相关命令代码确定退气命令中包含的数据安全状态为明文状态。安全芯片可以根据明文状态以明文方式对退气命令的第二数据域进行解析,得到明文形式的退气气量数据。
在一些实施例中,退气命令可以采用如表7所示的命令格式进行设计。如表7所示,INS的值可以是“34”,表示该报文用于燃气退费,即该报文为退气命令报文;Lc的数值是指定的数据的长度,可以根据实际应用场景需求进行设置。
表7
示例性地,可以指定Lc的数值是DATA数据域中数据的长度。主站向燃气表下发退气命令8034001404 00000005。燃气表的安全芯片获取到该退气命令后,对命令代码“8034001404”进行检查,可以确定数据安全状态为明文状态。安全芯片根据明文状态对该退气命令进行解析,可以得到明文形式的需要交易的退气气量数据为“00000005”。
需要说明的是,DATA数据域中也可以携带有验证码或者校验码,具体不再赘述。
进一步地,安全芯片可以根据退气气量数据对燃气气量文件中包含的气量余额数据和交易气量数据进行更新,以将气量余额数据更新为旧的气量余额数据加上退气气量数据得到的值,将交易气量数据更新为新增的退气气量数据,并得到相应的交易响应内容。
在有一些实施例中,退气命令对应的交易响应内容可以是安全芯片根据更新后的气量余额数据和新增的退气气量数据生成的响应报文,可以采用如表8所示的报文格式进行设计。
表8
可以理解的是,退气气量数据可以为0,退气命令也可以称为退气指令。
上述实施方式中,通过设计退气命令实现燃气用气量的退气操作,使得当供气公司有退补等政策优惠时,可以针对实际的退补需要,通过退气命令执行相应的退费操作,以将需要退补的燃气气量重新增加到燃气表的气量余额中。
在一些实施方式中,安全芯片内还预先建立有用户编号文件,用户编号文件中存储有第一用户编号;燃气交易数据包括第二用户编号。根据燃气交易数据对燃气气量文件进行更新,得到燃气交易命令对应的交易响应内容,可以包括:若第二用户编号与第一用户编号相同,根据燃气交易数据对燃气气量文件进行更新,得到交易响应内容。
其中,用户编号可以是燃气账户的编号,可以用于唯一标识燃气表。第二用户编号包含在燃气交易命令的数据域中。
在一些情况中,为了确保需要执行相关燃气交易操作的燃气表用户正确,可以在执行充气、退气等关键交易时核对燃气交易命令输入的用户编号与燃气表的安全芯片内存储的用户编号是否一致,以防止误操作。
具体地,安全芯片对燃气交易命令进行解析得到燃气交易数据后,可以获取燃气交易数据包括的第二用户编号,并将第二用户编号与安全芯片内用户编号文件中存储的第一用户编号进行比较。若第二用户编号与第一用户编号相同,表明当前燃气表用户正确,燃气表内的安全芯片可以执行相关的燃气交易操作,以根据燃气交易数据对燃气气量文件进行更新,并得到交易响应内容。
示例性地,燃气交易命令为充气命令,燃气交易数据包括充气气量数据和第二用户编号。以主站采用DES算法生成密文数据,并采用不附带MAC验证码和离散数据的方式生成充气命令为例。主站向燃气表下发充气命令8432021410 333E6C718818C27BBD4C64B86D9EC7CC。燃气表的安全芯片执行该充气命令,根据该充气命令可以确定该充气命令包含的数据安全状态为第一密文状态。
安全芯片根据第一密文状态对该充气命令进行解析,可以得到密文数据“333E6C718818C27BBD4C64B86D9EC7CC”。安全芯片利用燃气表对应的解密密钥对该密文数据进行解密,可以得到充气气量数据和第二用户编号,并将第二用户编号与用户编号文件中存储的第一用户编号进行比对。若比对正确,则安全芯片执行充气交易,根据充气气量数据对燃气气量文件进行更新,得到交易响应内容,以将更新后的气量余额数据和新增气量数据返回给主站。主站采用密文数据仅附带离散数据的方式生成充气命令的情况的描述与上述描述类似,具体不再赘述。
示例性地,燃气交易命令为充气命令,燃气交易数据包括充气气量数据和第二用户编号。假设主站采用SM1算法生成密文数据,并采用附带MAC验证码和离散数据的方式生成充气命令。主站向燃气表下发充气命令843203141C 333E6C718818C27BBD4C64B86D9EC7CC 78567E87 1122334455667788。燃气表的安全芯片执行该充气命令,根据该充气命令可以确定该充气命令包含的数据安全状态为第二密文状态,以根据第二密文状态对该充气命令进行解析,得到密文数据“333E6C718818C27BBD4C64B86D9EC7CC”、MAC验证码“78567E87”,以及离散数据“1122334455667788”。
安全芯片首先可以验证MAC验证码“78567E87”是否正确,若验证正确,则安全芯片其次可以利用离散数据“1122334455667788”计算得到专用密钥,并可以将该专用密钥作为解密密钥,用于解析密文数据“333E6C718818C27BBD4C64B86D9EC7CC”,得到充气气量数据和第二用户编号。安全芯片将该密钥进行密钥分散化处理,若分散化处理成功,且消息验证码通过验证,安全芯片可以将第二用户编号与用户编号文件中存储的第一用户编号进行比对。若比对正确,则安全芯片执行充气交易,根据充气气量数据对燃气气量文件进行更新,得到交易响应内容,以将更新后的气量余额数据和新增气量数据返回给主站。
主站采用明文方式、明文+MAC方式,以及采用密文数据仅附带MAC验证码的方式生成充气命令的情况的描述与上述描述类似,具体不再赘述。
示例性地,燃气交易命令为退气命令,燃气交易数据包括退气气量数据和第二用户编号,指定Lc的数值是燃气气量文件中交易气量数据(即DATA数据域中退气气量数据)的长度2+用户编号长度。
主站向燃气表下发退气命令803400140E 00000005112233445566。燃气表的安全芯片执行该退气命令,根据明文状态对该充气命令进行解析,得到退气气量数据“00000005”,以及第二用户编号“112233445566”。安全芯片将该第二用户编号与用户编号文件中存储的第一用户编号进行比对。若比对正确,则安全芯片执行退气交易,将气量00000005退回到编号为112233445566的燃气账户里,并对燃气气量文件进行更新,得到交易响应内容,以将更新后的气量余额数据和退气气量数据返回给主站。
需要说明的是,安全芯片内建立的用户编号文件可以采用二进制文件或者记录文件的形式存储第一用户编号,长度根据实际使用情况进行设置,一般可以设置为4~16字节。
上述实施方式中,通过在燃气表内嵌的安全芯片中建立用户编号文件以用于存储燃气表的用户编号,并在关键燃气交易的燃气交易命令中携带用户编号,以使安全芯片在执行关键燃气交易时对获取到的燃气交易命令中的用户编号进行核对。当燃气交易命令中的用户编号与用户编号文件中存储的用户编号一致时,表明当前需要执行燃气交易操作的燃气表账户正确,以此来有效防止误操作,增加燃气交易的安全性。
在一些实施方式中,燃气气量文件中包含有第一计数器数据,燃气交易数据还包括第二计数器数据。若第二用户编号与第一用户编号相同,根据燃气交易数据对燃气气量文件进行更新,得到交易响应内容,可以包括:若第二用户编号与第一用户编号相同,且第二计数器数据与第一计数器数据的差值为1,根据燃气交易数据对燃气气量文件进行更新,得到交易响应内容。
其中,计数器数据即为计数器值。
在一些情况中,为了避免重复充值、退费等现象的发生,可以在燃气表的安全芯片内记录计数器数据,并在燃气交易命令中携带计数器数据。在执行相关燃气交易操作时,通过对燃气交易命令中的计数器数据和燃气气量文件中的计数器数据进行核对,防止计数器亏空,从而保证燃气交易的正确性和安全性。
具体地,安全芯片对燃气交易命令进行解析得到燃气交易数据后,可以获取燃气交易数据包括的第二用户编号和第二计数器数据。安全芯片将第二用户编号与安全芯片内的用户编号文件中存储的第一用户编号进行比较,若第二用户编号与安全芯片内用户编号文件中存储的第一用户编号相同,安全芯片可以进一步比较第二计数器数据与安全芯片内燃气气量文件中记录的第一计数器数据。
若第二计数器数据与第一计数器数据的差值为1,即第二计数器数据比第一计数器数据大1,则安全芯片可以执行相关的燃气交易操作,以根据燃气交易数据对燃气气量文件进行更新,并得到交易响应内容。
进一步地,若第二计数器数据与第一计数器数据的差值为0,则可以认为计数器亏空,安全芯片不执行相关的燃气交易操作。
安全芯片根据燃气交易数据对燃气气量文件进行更新时,需要将燃气气量文件中的第一计数器数据加上1,以对第一计数器数据进行更新。
在一些实施例中,燃气气量文件为记录文件,包括有3条气量记录,每条记录的长度可以根据实际应用需要进行设置,通常可以设置为4~16字节,且要求每条记录的长度相等。燃气气量文件的具体格式可以如表9所示。
表9
其中,上述燃气气量文件建立后,需要调用更新记录命令(update record命令)对3条记录进行初始化,对3条记录赋初值为零。
充气命令可以采用如表10所示的命令格式进行设计。
表10
其中,数据域中的新增气量数据即为充气气量数据,新增气量数据和计数器值的长度必须等于燃气气量文件中要求的记录的长度,否则报错;数据域中的计数器值必须比燃气气量文件中的计数器值大1,以防止计数器亏空,否则报错;充气命令输入的用户编号与安全芯片内的用户编号需要核对一致,否则报错。
示例性地,以主站采用密文数据附带MAC验证码和离散数据的方式生成充气命令为例。主站与燃气表之间的燃气充气交易流程主要可以包括:(1)主站获取主站上记录的燃气表燃气气量文件的当前的计数器值、待充气燃气表的用户编号和离散数据;(2)主站将获取的计数器值加1,并根据燃气表离散数据计算出燃气表的专用密钥,利用燃气表专用密钥对新增气量、新计数器值、用户编号进行加密、MAC验证码计算,得到相应的数据,并组织充气命令报文,下发给燃气表;(3)燃气表内的安全芯片获取充气命令并执行,当充气命令中的计数器值比安全芯片内记录的计数器值大1,且充气命令中的用户编号与安全芯片中存储的用户编号一致,且充气命令中的MAC验证码通过验证,且密钥分散化处理成功,且密文数据解密正确时,安全芯片执行燃气充值操作;(4)燃气表安全芯片成功执行充气命令后,返回气量余额和新增气量给主站进行备份。其中,安全芯片对计数器值和用户编号进行核对、对充气命令中的MAC验证码进行验证、根据离散数据进行密钥分散化处理、对密文数据进行解密的描述请参考前文中的相关描述,具体不再赘述。
示例性地,以主站采用DES算法生成密文数据,并采用不附带MAC验证码和离散数据的方式生成充气命令为例。主站向燃气表下发充气命令8432021410 333E6C718818C27BBD4C64B86D9EC7CC。燃气表的安全芯片执行该充气命令,确定根据第一密文状态对该充气命令进行解析,得到密文数据“333E6C718818C27BBD4C64B86D9EC7CC”。安全芯片利用燃气表对应的解密密钥对该密文数据进行解密,可以得到充气气量数据、计数器值和用户编号。安全芯片将充气命令中的用户编号与用户编号文件中存储的用户编号进行比对,并将充气命令中的计数器值与燃气气量文件中记录的计数器值进行比对。若用户编号比对正确,且充气命令中的计数器值比燃气气量文件中的计数器值大1,则安全芯片执行充气交易,根据充气气量数据对燃气气量文件进行更新,得到交易响应内容,以将更新后的气量余额数据和新增气量数据返回给主站。
示例性地,以主站采用SM1算法生成密文数据,并采用附带MAC验证码和离散数据的方式生成充气命令为例。主站向燃气表下发充气命令843203141C 333E6C718818C27BBD4C64B86D9EC7CC 78567E87 1122334455667788。燃气表的安全芯片执行该充气命令,确定根据第二密文状态对该充气命令进行解析,得到密文数据“333E6C718818C27BBD4C64B86D9EC7CC”、MAC验证码“78567E87”,以及离散数据“1122334455667788”。
安全芯片首先可以验证MAC验证码“78567E87”是否正确,若验证正确,则安全芯片其次可以利用离散数据“1122334455667788”计算得到专用密钥,并可以将该专用密钥作为解密密钥,用于解析密文数据“333E6C718818C27BBD4C64B86D9EC7CC”,得到充气气量数据、计数器值和用户编号。安全芯片将该密钥进行密钥分散化处理,若分散化处理成功,且消息验证码通过验证,安全芯片可以将充气命令中的用户编号与用户编号文件中存储的用户编号进行比对,并将充气命令中的计数器值与燃气气量文件中的计数器值进行比对。若用户编号比对正确,且充气命令中的计数器值比燃气气量文件中的计数器值大1,则安全芯片执行充气交易,根据充气气量数据对燃气气量文件进行更新,得到交易响应内容,以将更新后的气量余额数据和新增气量数据返回给主站。
示例性地,参考图3a所示,安全芯片获取充气命令后,执行充气命令的具体执行流程主要可以包括:
步骤1:充气命令执行开始,安全芯片判断(检查)充气命令的CLA、P1、P2、Lc部分代码的状态是否正确,以及判断P2中指定的文件是否打开成功,以此检查各部分代码的数值是否正确等。若各部分代码通过检查,进入步骤2,否则返回错误状态;
步骤2:判断是否通过明文方式进行燃气充气(即判断充气数据安全状态是否为第一明文状态),若是,进入步骤3,否则进入步骤4;
步骤3:判断命令输入的用户编号是否与安全芯片内的用户编号一致,若一致,进入步骤5,否则充值用户错误,返回错误状态;
步骤4:判断密钥分散化处理是否成功(若充气命令中携带有离散数据),且安全报文是否解析成功,若是,进入步骤5,否则充气命令执行结束;
其中,若通过明文+MAC方式进行燃气充气,则安全报文解析成功即为MAC验证码验证成功;若通过密文方式进行燃气充气,则安全报文解析成功即为密文数据解密成功;若通过密文+MAC方式进行燃气充气,则安全报文解析成功即为MAC验证码验证成功且密文数据解密成功;
步骤5:判断充气命令输入的计数器值减去安全芯片内燃气气量文件中的计数器值得到的值是否为1,若是,进入步骤6,否则计数器亏空,返回错误状态;
步骤6:计算新的气量余额数据=旧的气量余额数据+此次新增气量数据,并判断计算是否成功,若成功,进入步骤7,否则气量溢出,返回错误状态;其中,旧的气量余额数据可以从P2指定的文件中获取;
步骤7:安全芯片内燃气气量文件中的计数器值加1,得到新的计数器值;
步骤8:判断是否将新的气量余额数据、此次新增气量数据和新的计数器值写入燃气气量文件成功,若成功,进入步骤9,否则此次充气不成功,返回错误状态;
步骤9:向主站返回新的气量余额数据和此次新增气量数据,充气命令执行结束。
在还有一些实施例中,退气命令可以采用如表11所示的命令格式进行设计。
表11
其中,退气气量数据的长度和安全芯片中燃气气量文件中所要求的交易气量数据记录的长度相等,用户编号长度与用户编号文件的长度一致。
示例性地,主站与燃气表之间的燃气退气交易流程主要可以包括:(1)主站获取主站上记录的燃气表燃气气量文件的当前的计数器值和待退气燃气表的用户编号;(2)主站将获取的计数器值加1,并根据要退气的退气气量数据、新计数器值、燃气表用户编号组织退气命令报文,下发给燃气表;(3)燃气表内的安全芯片获取退气命令并执行,当退气命令中的计数器值比安全芯片内的计数器值放大1,且退气命令中的用户编号与安全芯片中的用户编号一致时,安全芯片执行燃气退气操作;(4)燃气表安全芯片成功执行退气命令后,返回气量余额和此次的退气气量给主站进行备份。
示例性地,主站向燃气表下发退气命令803400140E00000005000000AA112233445566。燃气表的安全芯片执行该退气命令,根据明文状态对该充气命令进行解析,得到退气气量数据“00000005”、计数器值“000000AA”,以及用户编号“112233445566”。安全芯片将该用户编号与用户编号文件中存储的用户编号进行比对,并将该计数器值与燃气气量文件中的计数器值进行比对。若用户编号和计数器值均比对成功,则安全芯片将气量00000005退回到编号为112233445566的燃气账户里,并将更新后的气量余额数据和退气气量数据返回给主站。
示例性地,以上述退气命令为例,若用户编号比对正确,但计数器值“000000AA”与燃气气量文件中的计数器值的差值不为1,即计数器值“000000AA”错误,则安全芯片不执行退气00000005的操作。
示例性地,参考图3b所示,安全芯片获取退气命令后,执行退气命令的具体执行流程主要可以包括:
步骤1:退气命令执行开始,安全芯片判断(检查)退气命令的CLA、P1、P2、Lc部分代码的状态,以及判断P2中指定的文件是否打开成功,以此检查各部分代码的数值是否正确等。若各部分代码通过检查,进入步骤2,否则返回错误状态;
步骤2:判断退气命令输入的用户编号是否与安全芯片内的用户编号一致,若一致,进入步骤3,否则充值用户错误,返回错误状态;
步骤3:判断退气命令输入的计数器值减去安全芯片内燃气气量文件中的计数器值的值是否为1,若是,进入步骤4,否则计数器亏空,返回错误状态;
步骤4:计算新的气量余额数据=旧的气量余额数据+此次退气气量数据,并判断计算是否成功,若成功,进入步骤5,否则气量溢出,返回错误状态;
步骤5:安全芯片内燃气气量文件中的计数器值加1,得到新的计数器值;
步骤6:判断是否将新的气量余额数据、此次退气气量数据和新的计数器值写入燃气气量文件成功,若成功,进入步骤7,否则此次退气不成功,返回错误状态;
步骤7:向主站返回新的气量余额数据和此次退气气量数据,退气命令执行结束。
需要说明的是,若安全芯片根据当前充气命令成功执行燃气充值操作,或者根据当前退气命令成功执行燃气退费操作,主站可以将当前充气命令或当前退气命令中的计数器值进行记录,以便于下一次计算新的计数器值时可以直接获取。
上述实施方式中,通过在安全芯片中记录计数器数据,并在充气命令、退气命令的数据域中携带计数器数据,以使安全芯片在每次执行充气或退气操作时对充气命令、退气命令中的计数器数据进行检查,使得每次充气命令、退气命令中的计数器数据比安全芯片内的计数器数据大1,以此来防止重复充气、退气和计数器亏空的现象,保证燃气交易的安全性和正确性。
在一些实施方式中,燃气交易命令包括用气命令,用气命令包含有第三数据域,数据安全状态包括用气数据安全状态;燃气交易数据包括用气气量数据。根据数据安全状态对燃气交易命令包含的数据域进行解析,得到数据域中包含的燃气交易数据,可以包括:若根据用气命令确定用气命令包含的用气数据安全状态为不带校验值状态,根据不带校验值状态对第三数据域进行解析,得到用气气量数据。
或者,若根据用气命令确定用气命令包含的用气数据安全状态为带校验值状态,根据带校验值状态对第三数据域进行解析,得到用气气量数据和第三数据域中包含的校验值;其中,交易响应内容在校验值通过校验的情况下,根据用气气量数据对气量余额数据和交易气量数据更新得到。
或者,若根据用气命令确定用气命令包含的用气数据安全状态为带验证码状态,根据带验证码状态对第三数据域进行解析,得到用气气量数据和第三数据域中包含的第三消息验证码;其中,交易响应内容在第三消息验证码通过验证的情况下,根据用气气量数据对气量余额数据和交易气量数据更新得到。
其中,用气命令可以用于指示安全芯片完成燃气消费操作(或者,燃气扣气操作)。用气气量数据可以包括需要扣除的燃气气量值,也可以被称为扣除气量数据,可以以明文形式被携带在第三数据域中。第三消息验证码即为MAC消息验证码。
若用气数据安全状态为不带校验值状态,用气命令的第三数据域中可以仅包含用气气量数据。
具体地,安全芯片获取用气命令后,可以根据用气命令中的相关命令代码确定用气命令中包含的用气数据安全状态。
若确定用气数据安全状态为不带校验值状态,则安全芯片可以根据不带校验值状态对用气命令的第三数据域进行解析,得到用气气量数据。安全芯片根据用气气量数据对气量余额数据和交易气量数据进行更新,以得到相应的交易响应内容。
若确定用气数据安全状态为带校验值状态,则安全芯片可以根据带校验值状态对用气命令的第三数据域进行解析,得到第三数据域中的用气气量数据和校验值。安全芯片对校验值进行校验,若校验值通过校验,安全芯片可以根据用气气量数据对气量余额数据和交易气量数据进行更新,以得到相应的交易响应内容。
若确定用气数据安全状态为带验证码状态,则安全芯片可以根据带验证码状态对用气命令的第三数据域进行解析,得到第三数据域中的用气气量数据和第三消息验证码。安全芯片对第三消息验证码进行验证,若第三消息验证码通过验证,安全芯片可以根据用气气量数据对气量余额数据和交易气量数据进行更新,以得到相应的交易响应内容。
在一些实施例中,用气命令可以采用如表12所示的命令格式进行设计。如表12所示,若用气命令中CLA+P1的数值为“80”+“00”,表示用气数据安全状态为不带校验值状态;若用气命令中CLA+P1的数值为“80”+“01”,表示用气数据安全状态为带校验值状态;若用气命令中CLA+P1的数值为“80”+“02”,表示用气数据安全状态为带验证码状态。
表12
其中,INS的值可以是“30”,表示该报文用于燃气消费,即该报文为用气命令报文。扣除气量长度和安全芯片中燃气气量文件中所要求的交易气量数据记录的长度相等。
用气命令对应的交易响应内容可以是安全芯片根据更新后的气量余额数据和扣除气量数据生成的响应报文,可以采用如表13所示的报文格式进行设计。
表13
示例性地,主站与燃气表之间的燃气用气交易流程主要可以包括:(1)主站根据用气量(即,扣除气量)的计量结果,组织用气命令报文(有校验要求时,需要计算扣除气量的校验值或者消息验证码),并向燃气表发送用气命令;(2)燃气表的安全芯片获取用气命令并执行,并根据用气命令中的扣除气量,进行燃气扣气操作;(3)燃气表安全芯片成功执行用气命令后,返回气量余额和此次扣除气量给主站进行备份。
示例性地,以主站采用明文不带校验值的方式生成用气命令为例。主站向燃气表下发用气命令8030001404 00000010。燃气表的安全芯片获取到该用气命令后,可以确定用气数据安全状态为不带校验值状态。安全芯片根据不带校验值状态对该用气命令进行解析,可以得到需要交易的用气气量数据为“00000010”。安全芯片执行该用气命令,根据用气气量数据对气量余额数据和交易气量数据进行更新,以在扣除气量00000010成功后,将更新后的气量余额数据和此次扣除气量数据返回给主站。
进一步地,主站可以每日向燃气表下发一次抄表任务,以将燃气表中最新的用气信息抄回,并根据情况执行跳闸、合闸等操作。
示例性地,以主站采用明文带校验值的方式生成用气命令为例,主站可以通过CRC16算法计算校验值。主站向燃气表下发带CRC16校验值的用气命令803001140600000010 86F4。燃气表内安全芯片获取到该用气命令后,可以确定用气数据安全状态为带校验值状态。安全芯片根据带校验值状态对该用气命令进行解析,可以得到需要交易的用气气量数据“00000010”,以及校验值“86F4”。安全芯片可以利用CRC16算法对该校验值进行校验,若该校验值校验正确,则安全芯片执行该用气命令,进行扣气操作,根据用气气量数据对气量余额数据和交易气量数据进行更新,以在扣除气量00000010成功后,将更新后的气量余额数据和此次扣除气量数据返回给主站。主站采用明文带验证码的方式生成用气命令的情况的描述与上述描述类似,具体不再赘述。
示例性地,参考图4所示,安全芯片获取用气命令后,执行用气命令的具体执行流程主要可以包括:
步骤1:用气命令执行开始,安全芯片判断(检查)用气命令的CLA、P1、P2、Lc部分代码的状态,以及判断P2中指定的文件是否打开成功,以此检查各部分代码的数值是否正确等。若各部分代码通过检查,进入步骤2,否则返回错误状态;
步骤2:判断是否通过校验值校验方式或者MAC验证码验证方式扣除气量(即判断用气数据安全状态是否为带校验值状态或者带验证码状态),若是,进入步骤3,否则进入步骤4;
步骤3:判断校验值是否通过校验或者MAC验证码是否通过验证,若是,进入步骤4,否则用气命令执行结束;
步骤4:计算新的气量余额数据=旧的气量余额数据-此次扣除气量数据,并判断计算是否成功,若成功,进入步骤5,否则返回错误状态;
步骤5:判断是否将新的气量余额数据、此次扣除气量数据写入燃气气量文件成功,若成功,进入步骤6,否则返回错误状态;
步骤6:向主站返回新的气量余额数据和此次扣除气量数据,用气命令执行结束。
可以理解的是,用气气量数据的最小扣气单位为1立方米,用气气量数据可以为0,用气命令也可以称为用气指令。
需要说明的是,安全芯片执行用气命令时不需要核对用户编号。用气命令中校验值的计算方式可以根据实际应用需求进行选择,比如SM3密码杂凑算法、MD5信息-摘要算法、校验和算法、异或校验算法、循环冗余校验算法(如CRC8、CRC16、CRC32、CCRC64算法)等。
上述实施方式中,通过用气命令实现燃气表用气量的扣减,并可以根据实际应用情况,选择采用不带校验值、带校验值、带MAC验证码三种方式进行燃气表用气量的扣减操作,可以有效保证用气气量数据的正确性和完整性。同时,若采用带校验值方式,校验值的计算方法可以根据实际应用情况进行选择,校验方式更加灵活。
本说明书实施方式提供一种燃气交易装置,应用于安全芯片,安全芯片内嵌至燃气表,安全芯片内预先建立有燃气气量文件,燃气气量文件用于记录燃气表的气量余额数据和交易气量数据。参考图5所示,燃气交易装置500可以包括:燃气交易命令获取模块510、燃气交易数据获取模块520、交易响应内容获取模块530。
燃气交易命令获取模块510,用于获取主站发送的燃气交易命令;其中,燃气交易命令包含有数据安全状态。
燃气交易数据获取模块520,用于根据数据安全状态对燃气交易命令进行解析,得到燃气交易数据。
交易响应内容获取模块530,用于根据燃气交易数据对燃气气量文件中包含的气量余额数据和交易气量数据进行更新,得到燃气交易命令对应的交易响应内容,以将交易响应内容发送至主站。
在一些实施方式中,燃气交易命令包括充气命令,充气命令包含有第一数据域,数据安全状态包括充气数据安全状态;燃气交易数据包括充气气量数据;燃气交易数据获取模块520,还用于若根据充气命令确定充气命令包含的充气数据安全状态为明文状态,根据明文状态对第一数据域进行解析,得到充气气量数据;或者,若根据充气命令确定充气命令包含的充气数据安全状态为密文状态,根据密文状态对第一数据域进行解析,得到第一数据域中包含的密文数据;利用燃气表对应的解密密钥对密文数据进行解密,得到充气气量数据。
在一些实施方式中,燃气交易命令包括退气命令,退气命令包含有第二数据域,退气命令包含的数据安全状态为明文状态;燃气交易数据获取模块520,还用于根据明文状态对第二数据域进行解析,得到退气气量数据;其中,燃气交易数据包括退气气量数据。
在一些实施方式中,燃气交易命令包括用气命令,用气命令包含有第三数据域,数据安全状态包括用气数据安全状态;燃气交易数据包括用气气量数据;燃气交易数据获取模块520,还用于若根据用气命令确定用气命令包含的用气数据安全状态为不带校验值状态,根据不带校验值状态对第三数据域进行解析,得到用气气量数据;或者,若根据用气命令确定用气命令包含的用气数据安全状态为带校验值状态,根据带校验值状态对第三数据域进行解析,得到用气气量数据和第三数据域中包含的校验值;其中,交易响应内容在校验值通过校验的情况下,根据用气气量数据对气量余额数据和交易气量数据更新得到;或者,若根据用气命令确定用气命令包含的用气数据安全状态为带验证码状态,根据带验证码状态对第三数据域进行解析,得到用气气量数据和第三数据域中包含的第三消息验证码;其中,交易响应内容在第三消息验证码通过验证的情况下,根据用气气量数据对气量余额数据和交易气量数据更新得到。
关于燃气交易装置的具体限定可以参见上文中对于燃气交易方法的限定,在此不再赘述。上述燃气交易装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本说明书实施方式还提供一种计算机设备,参考图6所示,该计算机设备600包括存储器610、处理器620及存储在存储器610上并可在处理器620上运行的第一计算机程序630,处理器620执行第一计算机程序630时,实现前述任一项实施方式中的燃气交易方法。
本说明书实施方式还提供一种芯片,参考图7所示,该芯片700包括存储单元710、处理单元720及存储在存储单元710上并可在处理单元720上运行的第二计算机程序730,处理单元720执行第二计算机程序730时,实现前述任一项实施方式中的燃气交易方法。
本说明书实施方式还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现前述任一项实施方式中的燃气交易方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
1.一种燃气交易方法,其特征在于,应用于安全芯片,所述安全芯片内嵌至燃气表,所述安全芯片内预先建立有燃气气量文件,所述燃气气量文件用于记录所述燃气表的气量余额数据和交易气量数据;所述方法包括:
获取主站发送的燃气交易命令;其中,所述燃气交易命令包含有数据安全状态;
根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据;
根据所述燃气交易数据对所述燃气气量文件中包含的所述气量余额数据和所述交易气量数据进行更新,得到所述燃气交易命令对应的交易响应内容,以将所述交易响应内容发送至所述主站;
其中,所述燃气交易命令包括用气命令,所述用气命令包含有第三数据域,所述数据安全状态包括用气数据安全状态;所述燃气交易数据包括用气气量数据;所述根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据,包括:若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为不带校验值状态,根据所述不带校验值状态对所述第三数据域进行解析,得到所述用气气量数据;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带校验值状态,根据所述带校验值状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的校验值;其中,所述交易响应内容在所述校验值通过校验的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带验证码状态,根据所述带验证码状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的第三消息验证码;其中,所述交易响应内容在所述第三消息验证码通过验证的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到。
2.根据权利要求1所述的方法,其特征在于,所述燃气交易命令还包括充气命令,所述充气命令包含有第一数据域,所述数据安全状态还包括充气数据安全状态;所述燃气交易数据还包括充气气量数据;所述根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据,还包括:
若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为明文状态,根据所述明文状态对所述第一数据域进行解析,得到所述充气气量数据;或者,
若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为密文状态,根据所述密文状态对所述第一数据域进行解析,得到所述第一数据域中包含的密文数据;利用所述燃气表对应的解密密钥对所述密文数据进行解密,得到所述充气气量数据。
3.根据权利要求2所述的方法,其特征在于,所述明文状态包括第一明文状态或第二明文状态;所述若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为明文状态,根据所述明文状态对所述第一数据域进行解析,得到所述充气气量数据,包括:
若根据所述充气命令确定所述充气数据安全状态为所述第一明文状态,根据所述第一明文状态对所述第一数据域进行解析,得到所述充气气量数据;或者,
若根据所述充气命令确定所述充气数据安全状态为所述第二明文状态,根据所述第二明文状态对所述第一数据域进行解析,得到所述充气气量数据和所述第一数据域中包含的第一消息验证码;其中,所述交易响应内容包括充气交易响应内容,所述充气交易响应内容在所述第一消息验证码通过验证的情况下,根据所述充气气量数据对所述气量余额数据和所述交易气量数据更新得到。
4.根据权利要求3所述的方法,其特征在于,若根据所述充气命令确定所述充气数据安全状态为所述第二明文状态,所述第一数据域中还包含有第一离散数据;通过以下方式获得所述充气交易响应内容:
根据所述第一离散数据进行密钥分散化处理,得到第一分散化结果;
若所述第一分散化结果表明分散化处理成功,且所述第一消息验证码通过验证,根据所述充气气量数据对所述气量余额数据和所述交易气量数据进行更新,得到所述充气交易响应内容。
5.根据权利要求2所述的方法,其特征在于,所述密文状态包括第一密文状态或者第二密文状态;所述若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为密文状态,根据所述密文状态对所述第一数据域进行解析,得到所述第一数据域中包含的密文数据,包括:
若根据所述充气命令确定所述充气数据安全状态为所述第一密文状态,根据所述第一密文状态对所述第一数据域进行解析,得到所述密文数据;或者,
若根据所述充气命令确定所述充气数据安全状态为所述第二密文状态,根据所述第二密文状态对所述第一数据域进行解析,得到所述密文数据和所述第一数据域中包含的第二消息验证码;其中,所述交易响应内容在所述第二消息验证码通过验证的情况下,根据所述充气气量数据对所述气量余额数据和所述交易气量数据更新得到。
6.根据权利要求5所述的方法,其特征在于,所述交易响应内容包括充气交易响应内容;通过以下方式获得所述充气交易响应内容:
若根据所述充气命令确定所述充气数据安全状态为所述第一密文状态,根据所述第一数据域中包含的第二离散数据进行密钥分散化处理,得到第二分散化结果;若所述第二分散化结果表明分散化处理成功,根据所述充气气量数据对所述气量余额数据和所述交易气量数据进行更新,得到所述充气交易响应内容。
7.根据权利要求5所述的方法,其特征在于,所述交易响应内容包括充气交易响应内容;通过以下方式获得所述充气交易响应内容:
若根据所述充气命令确定所述充气数据安全状态为所述第二密文状态,根据所述第一数据域中包含的第三离散数据进行密钥分散化处理,得到第三分散化结果;若所述第三分散化结果表明分散化处理成功,且所述第二消息验证码通过验证,根据所述充气气量数据对所述气量余额数据和所述交易气量数据进行更新,得到所述充气交易响应内容。
8.根据权利要求1所述的方法,其特征在于,所述燃气交易命令还包括退气命令,所述退气命令包含有第二数据域,所述退气命令包含的数据安全状态为明文状态;所述根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据,包括:
根据所述明文状态对所述第二数据域进行解析,得到退气气量数据;其中,所述燃气交易数据包括所述退气气量数据。
9.根据权利要求2至8任一项所述的方法,其特征在于,所述安全芯片内还预先建立有用户编号文件,所述用户编号文件中存储有第一用户编号;所述燃气交易数据包括第二用户编号;所述根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述燃气交易命令对应的交易响应内容,包括:
若所述第二用户编号与所述第一用户编号相同,根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述交易响应内容。
10.根据权利要求9所述的方法,其特征在于,所述燃气气量文件中包含有第一计数器数据,所述燃气交易数据还包括第二计数器数据;所述若所述第二用户编号与所述第一用户编号相同,根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述交易响应内容,包括:
若所述第二用户编号与所述第一用户编号相同,且所述第二计数器数据与所述第一计数器数据的差值为1,根据所述燃气交易数据对所述燃气气量文件进行更新,得到所述交易响应内容。
11.一种燃气交易装置,其特征在于,应用于安全芯片,所述安全芯片内嵌至燃气表,所述安全芯片内预先建立有燃气气量文件,所述燃气气量文件用于记录所述燃气表的气量余额数据和交易气量数据;所述装置包括:
燃气交易命令获取模块,用于获取主站发送的燃气交易命令;其中,所述燃气交易命令包含有数据安全状态;
燃气交易数据获取模块,用于根据所述数据安全状态对所述燃气交易命令进行解析,得到燃气交易数据;
交易响应内容获取模块,用于根据所述燃气交易数据对所述燃气气量文件中包含的所述气量余额数据和所述交易气量数据进行更新,得到所述燃气交易命令对应的交易响应内容,以将所述交易响应内容发送至所述主站;
其中,所述燃气交易命令包括用气命令,所述用气命令包含有第三数据域,所述数据安全状态包括用气数据安全状态;所述燃气交易数据包括用气气量数据;所述燃气交易数据获取模块,还用于若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为不带校验值状态,根据所述不带校验值状态对所述第三数据域进行解析,得到所述用气气量数据;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带校验值状态,根据所述带校验值状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的校验值;其中,所述交易响应内容在所述校验值通过校验的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到;或者,若根据所述用气命令确定所述用气命令包含的所述用气数据安全状态为带验证码状态,根据所述带验证码状态对所述第三数据域进行解析,得到所述用气气量数据和所述第三数据域中包含的第三消息验证码;其中,所述交易响应内容在所述第三消息验证码通过验证的情况下,根据所述用气气量数据对所述气量余额数据和所述交易气量数据更新得到。
12.根据权利要求11所述的装置,其特征在于,所述燃气交易命令还包括充气命令,所述充气命令包含有第一数据域,所述数据安全状态还包括充气数据安全状态;所述燃气交易数据还包括充气气量数据;
所述燃气交易数据获取模块,还用于若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为明文状态,根据所述明文状态对所述第一数据域进行解析,得到所述充气气量数据;或者,
若根据所述充气命令确定所述充气命令包含的所述充气数据安全状态为密文状态,根据所述密文状态对所述第一数据域进行解析,得到所述第一数据域中包含的密文数据;利用所述燃气表对应的解密密钥对所述密文数据进行解密,得到所述充气气量数据。
13.根据权利要求11所述的装置,其特征在于,所述燃气交易命令还包括退气命令,所述退气命令包含有第二数据域,所述退气命令包含的数据安全状态为明文状态;
所述燃气交易数据获取模块,还用于根据所述明文状态对所述第二数据域进行解析,得到退气气量数据;其中,所述燃气交易数据包括所述退气气量数据。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有第一计算机程序,其特征在于,所述处理器执行所述第一计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
15.一种芯片,包括存储单元和处理单元,所述存储单元存储有第二计算机程序,其特征在于,所述处理单元执行所述第二计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311452208.2A CN117172924B (zh) | 2023-11-03 | 2023-11-03 | 燃气交易方法、装置、计算机设备、芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311452208.2A CN117172924B (zh) | 2023-11-03 | 2023-11-03 | 燃气交易方法、装置、计算机设备、芯片及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117172924A CN117172924A (zh) | 2023-12-05 |
CN117172924B true CN117172924B (zh) | 2024-01-16 |
Family
ID=88941730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311452208.2A Active CN117172924B (zh) | 2023-11-03 | 2023-11-03 | 燃气交易方法、装置、计算机设备、芯片及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117172924B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108711228A (zh) * | 2018-03-31 | 2018-10-26 | 大庆英辰创新科技有限公司 | Ic卡燃气表的网络缴费数据通信处理方法、装置和系统 |
CN109978537A (zh) * | 2017-12-27 | 2019-07-05 | 新智数字科技有限公司 | 远程购气方法及系统 |
CN110381458A (zh) * | 2019-07-26 | 2019-10-25 | 北京讯腾智慧科技股份有限公司 | 智能燃气表信息安全传输系统 |
CN112437087A (zh) * | 2020-11-24 | 2021-03-02 | 重庆市山城燃气设备有限公司 | 具有安全芯片燃气表的加解密方法、系统及燃气表系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470401A (zh) * | 2018-06-14 | 2018-08-31 | 赫普科技发展(北京)有限公司 | 一种带轻钱包的智能燃气表系统 |
-
2023
- 2023-11-03 CN CN202311452208.2A patent/CN117172924B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109978537A (zh) * | 2017-12-27 | 2019-07-05 | 新智数字科技有限公司 | 远程购气方法及系统 |
CN108711228A (zh) * | 2018-03-31 | 2018-10-26 | 大庆英辰创新科技有限公司 | Ic卡燃气表的网络缴费数据通信处理方法、装置和系统 |
CN110381458A (zh) * | 2019-07-26 | 2019-10-25 | 北京讯腾智慧科技股份有限公司 | 智能燃气表信息安全传输系统 |
CN112437087A (zh) * | 2020-11-24 | 2021-03-02 | 重庆市山城燃气设备有限公司 | 具有安全芯片燃气表的加解密方法、系统及燃气表系统 |
Non-Patent Citations (1)
Title |
---|
IC卡燃气表的信息安全管理技术;邵泽华;;煤气与热力(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117172924A (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106981004B (zh) | 用于对商品供应商的自主选择的设备、方法和系统 | |
KR101067615B1 (ko) | 전자 장치에의 데이터 로딩 | |
CN104160405B (zh) | 用于信任配置的安全设备环境 | |
CN105391717B (zh) | 一种apk签名认证方法及其系统 | |
CN116882994A (zh) | 一种为智能合同提供经证实、可审计和不可变输入的方法和系统 | |
CN115545685A (zh) | 能源网络 | |
US20040073846A1 (en) | Memory device, terminal apparatus, and data repair system | |
JP2005535984A (ja) | スマートカード技術を用いた転送可能な計器ライセンス | |
US20030131349A1 (en) | Methods and systems for managing and collecting impulse pay-per-view data in smart card enabled television terminals | |
CN107453873B (zh) | 一种智能ic卡数据校验方法及系统 | |
CN108876506A (zh) | 一种车辆登记方法及装置 | |
US9298949B2 (en) | Method for programming a mobile end device chip | |
CN107730253B (zh) | 一种脱机交易时效管理方法及装置 | |
CN106096925A (zh) | 一种智能卡、一种智能卡的充值方法及系统 | |
CN103425932B (zh) | 签名校验方法和终端设备 | |
CN100468452C (zh) | 一种实现电子存折(钱包)安全交易的方法 | |
CN117172924B (zh) | 燃气交易方法、装置、计算机设备、芯片及存储介质 | |
CN102473328B (zh) | 货币识别装置的程序安装系统以及程序安装方法 | |
TWI483220B (zh) | 用以在充電站與電動車輛之間通訊的方法、裝置和系統,以及用以保全從充電站取得之能源量之收費功能的方法、裝置和系統 | |
US20200036728A1 (en) | Method for ensuring the authenticity of a field device | |
CN103327086A (zh) | 一种进行燃气售气交易的方法及售气客户端 | |
CN113342374B (zh) | 电池管理系统升级方法及电子装置 | |
CN115657976A (zh) | 写卡方法、装置、电子设备及存储介质 | |
US6052783A (en) | Method of loading commands in the security module of a terminal | |
CN108197456B (zh) | 一种设备数据的缓存方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |