STS的token识别方法及系统与流程

文档序号:12472909阅读:691来源:国知局
STS的token识别方法及系统与流程
本发明涉及token识别
技术领域
,特别涉及一种STS的token识别方法及系统。
背景技术
:随着近几年“智能电网、智能用电”等理念的普及,越来越多的国家和城市部署了预付费电力系统。在预付费电力系统中,用户用电前需在售电点先进行购电,获得一个由20个字符组成的充值码,也称token。通过往表中输入token来实现用户对电量(或电费)的充值,从而达到“先付费,再使用”的目的。使用预付费电力系统能直接消除用户不付电费的风险,减少抄表与维修成本,提高电网公司的业务效率,也进一步推进用户对自身用电管理的积极性。token作为预付费电力系统中售电系统和用电系统之间的重要桥梁和信息传输媒介,不但要求其能安全有效的承载购电信息,还需要防止它被重复使用、过期使用等问题。根据以南非ESKOM电力局为主要组织者的STS协会发布的标准传输规范(以下简称STS),token在未过期、未使用的情况下,因充值时输入次序出错或者用户没有及时充值,容易使电表判定token过期而无法被识别,从而造成用户不必要的经济损失或者电力公司额外的业务操作。STS中对token的格式进行定义,如下表所示:ClassSubClassRNDTIDRegister/AmountCRC2bits4bits4bits24bits16bits16bits包括:token类型(2bits)、token子类型(4bits)、随机数域(4bits)、TID域(24bits)、Register/Amount域(16bits)以及CRC校验域(16bits)。其中TID是以STS设定的基准时间为准的偏移分钟数。STS中判断token是否有效主要基于对token的TID进行判断:一是token的TID是否已在电表存储区中;二是token的TID是否比电表存储区中所存储的TID值还小;三是token的TID前八位是否比密钥有效期大;如果输入的token同时不满足这三点要求,则说明此token为有效的。该方法使用户在输入token时必须按照token生成的顺序进行输入,一旦用户输入的顺序与token生成的顺序不一致,则会导致正常有效的Token不能被电表识别的概率极高,给用户和售电单位带来不必要的麻烦和额外的业务操作。技术实现要素:本发明针对预付费电力系统中用户充值时token输入次序出错、没有及时充值等人为因素造成的token无法被电表识别的问题,结合预付费表存储的TID记录空间有限等特点,提出了一种STS的token识别方法及系统,该方法及系统能够对token的TID进行滑动窗偏移识别,从而精确地对用户输入的token进行有效性识别。本发明提供的STS的token识别方法,包括以下步骤:在电表初始化状态下,根据对滑动窗的相关参数设置,计算初始的TID滑动窗偏移区间;电表初始化之后,根据初始的TID滑动窗偏移区间,对当前输入的token进行有效性识别;在验证当前输入的token为有效token后,根据STS标准对当前输入的token的密钥有效性进行判定,若有效,则触发预设的TID滑动窗偏移机制,得到下一次输入的token的TID滑动窗偏移区间,并将有效token的TID存储在相应的TID存储区中。作为一种可实施方式,所述在电表初始化状态下,根据对滑动窗的相关参数设置,计算初始的TID滑动窗偏移区间,包括以下步骤:步骤A:判断电表是否处于初始化状态;若是,则当前输入电表的token的TID值TIDC=TIDF,TIDF为TID滑动窗底值,为能被识别的token的TID最小值,但不包括该值,进入步骤B和步骤C;若否,则直接进入步骤B和步骤C;步骤B:计算TID滑动窗下限值TIDNE:比较TIDF与(TIDC-TIDN)大小,选择其中较大的作为TID滑动窗下限值TIDNE;其中,TIDN为滑动窗向后允许偏移的TID间隔分钟数,进入步骤D;步骤C:计算TID滑动窗上限值TIDPO:TIDPO=TIDC+TIDP;判断TIDPO是否超越224的边界,如果未超过边界,则TID滑动窗上限值为TIDPO,否则对TID滑动窗上限值TIDPO赋值为224-1;其中,TIDP为滑动窗向前允许偏移的TID间隔分钟数,进入步骤D;步骤D:根据步骤B计算的TID滑动窗下限值TIDNE和步骤C计算的TID滑动窗上限值TIDPO,得到初始的TID滑动窗偏移区间。作为一种可实施方式,所述电表初始化之后,根据初始的TID滑动窗偏移区间,对第一次输入的token进行有效性识别包括以下步骤:步骤E:判断当前输入的token的TID值是否大于预设的TID滑动窗底值;若是,则进入步骤F;否则,结束TID识别流程并返回结果;步骤F:判断当前输入的token的TID值是否落入初始的TID滑动窗偏移区间之内,如果落入,则进入步骤G;如果没有落入,结束TID识别流程并返回结果;步骤G:判断当前输入的token的TID是否在电表的存储区中,若是,则结束TID识别流程并返回结果;若当前输入的token的TID不在电表的存储区中,则判定该当前输入的token为有效token。作为一种可实施方式,本发明的STS的token识别方法,还包括以下步骤:在电表的存储区中的TID存储空间达到极限后,根据系统中记录的电表最大存储空间以及预设的新底值,对TID滑动窗底值进行重设。作为一种可实施方式,所述在电表的存储区中的TID存储空间达到极限后,根据系统中记录的电表最大存储空间以及预设的新底值,对TID滑动窗底值进行重设,还包括以下步骤:步骤H:判断新底值与电表中存储的原来的TID底值的大小,如果新低值大于原来的TID底值,则进入步骤I;否则,结束重设流程;步骤I:判断新底值是否比电表中的TID存储区中存储的最小的TID还小,若是,则结束重设流程;如否,则进入步骤J;步骤J:清除电表中的TID存储区中存储的小于新底值的所有TID的记录,进入步骤K;步骤K:将新底值设为当前电表中TID滑动窗底值。相应地,本发明还提供一种STS的token识别系统,包括计算模块、识别模块以及存储模块;所述计算模块,用于在电表初始化状态下,根据对滑动窗的相关参数设置,计算初始的TID滑动窗偏移区间;所述识别模块,用于在电表初始化之后,根据初始的TID滑动窗偏移区间,对当前输入的token进行有效性识别;所述存储模块,用于在验证当前输入的token为有效token后,根据STS标准对当前输入的token的密钥有效性进行判定,若有效,则触发预设的TID滑动窗偏移机制,得到下一次输入的token的TID滑动窗偏移区间,并将有效token的TID存储在相应的TID存储区中。作为一种可实施方式,所述计算模块包括初始化判断单元、滑动窗下限值计算单元、滑动窗上限值计算单元以及偏移区间计算单元;所述初始化判断单元,用于判断电表是否处于初始化状态;若是,则当前输入电表的token的TID值TIDC=TIDF,TIDF为TID滑动窗底值,为能被识别的token的TID最小值,但不包括该值,进入所述滑动窗下限值计算单元和滑动窗上限值计算单元;若否,则直接进入所述滑动窗下限值计算单元和滑动窗上限值计算单元;所述滑动窗下限值计算单元,用于计算TID滑动窗下限值TIDNE:比较TIDF与(TIDC-TIDN)大小,选择其中较大的作为TID滑动窗下限值TIDNE;其中,TIDN为滑动窗向后允许偏移的TID间隔分钟数,进入所述偏移区间计算单元;所述滑动窗上限值计算单元,用于计算TID滑动窗上限值TIDPO:TIDPO=TIDC+TIDP;判断TIDPO是否超越224的边界,如果未超过边界,则TID滑动窗上限值为TIDPO,否则对TID滑动窗上限值TIDPO赋值为224-1;其中,TIDP为滑动窗向前允许偏移的TID间隔分钟数,进入所述偏移区间计算单元;所述偏移区间计算单元,用于根据所述滑动窗下限值计算单元计算的TID滑动窗下限值TIDNE和所述滑动窗上限值计算单元计算的TID滑动窗上限值TIDPO,得到初始的TID滑动窗偏移区间。作为一种可实施方式,所述识别模块包括第一判断单元、第二判断单元以及第三判断单元;所述第一判断单元,用于判断当前输入的token的TID值是否大于预设的TID滑动窗底值;若是,则进入第二判断单元;否则,结束TID识别流程并返回结果;所述第二判断单元,用于判断当前输入的token的TID值是否落入初始的TID滑动窗偏移区间之内,如果落入,则进入第三判断单元;如果没有落入,结束TID识别流程并返回结果;所述第三判断单元,用于判断当前输入的token的TID是否在电表的存储区中,若是,则结束TID识别流程并返回结果;若当前输入的token的TID不在电表的存储区中,则判定该当前输入的token为有效token。作为一种可实施方式,本发明的token的识别系统,还包括底值重设模块;所述底值重设模块,用于在电表的存储区中的TID存储空间达到极限后,根据系统中记录的电表最大存储空间以及预设的新底值,对TID滑动窗底值进行重设。作为一种可实施方式,所述底值重设模块包括第四判断单元、第五判断单元、清除单元以及重设单元;所述第四判断单元,用于判断新底值与电表中存储的原来的TID底值的大小,如果新低值大于原来的TID底值,则进入所述第五判断单元;否则,结束重设流程;所述第五判断单元,用于判断新底值是否比电表中的TID存储区中存储的最小的TID还小,若是,则结束重设流程;如否,则进入所述清除单元;所述清除单元,用于清除电表中的TID存储区中存储的小于新底值的所有TID的记录,进入所述重设单元;所述重设单元,用于将新底值设为当前电表中TID滑动窗底值。本发明相比于现有技术的有益效果在于:本发明提供的STS的token识别方法及系统,通过在电表初始化状态下,根据对滑动窗的相关参数设置,计算初始的TID滑动窗偏移区间;然后在电表初始化之后,根据初始的TID滑动窗偏移区间,对当前输入的token进行有效性识别;最后在验证当前输入的token为有效token后,根据STS标准对当前输入的token的密钥有效性进行判定,若有效,则触发预设的TID滑动窗偏移机制,得到下一次输入的token的TID滑动窗偏移区间,并将有效token的TID存储在相应的TID存储区中。后续根据上一次得到的TID滑动窗偏移区间,对输入的token进行依次识别。本发明提供的STS的token识别方法及系统,简单可行,识别精准,有效解决了电表对token有效性进行精准识别的问题,同时也解决了正常有效的token的意外过期问题,对用户充值的有效时间段进行限制,为预付费电力系统的用电充值管理提供了技术基础。附图说明图1a为本发明实施例提供的TID滑动窗偏移状态一实例图;图1b为本发明实施例提供的TID滑动窗偏移状态二实例图;图1c为本发明实施例提供的TID滑动窗偏移状态三实例图;图1d为本发明实施例提供的TID滑动窗偏移状态四实例图;图1e为本发明实施例提供的TID滑动窗偏移状态五实例图;图2为本发明实施例提供的STS的token识别方法的流程示意图;图3为本发明实施例提供的TID滑动窗偏移区间的计算过程示意图;图4为本发明实施例提供的token的有效性识别过程示意图;图5为本发明实施例提供的TID滑动窗底值重设过程示意图。具体实施方式以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。本发明提供的STS的token识别方法及系统,通过设置滑动窗判断机制和底值重设操作,结合电表中存储Token(即token)的TID这个特性,解决了因用户操作使正常有效的Token不能被电表识别的问题,同时因为滑动窗的底值需售电点等重要单位进行设置,间接给预付费用电系统的用电充值管理和分析提供了技术基础和数据来源。在电表生命周期开始之前,电表寄存器需配备有相应寄存器存储以下参数:列表TIDL[M]:电表中存储所有输入到电表的Token的TID,M为可存储TID记录的总个数;TIDC:当前输入电表的Token的TID;TIDF:滑动窗的TID底值,限定能被识别的Token的TID的最小值,但不包括该值;TIDNE:滑动窗下限TID值;TIDPO:滑动窗上限TID值;TIDN:滑动窗向后允许偏移的TID间隔分钟数;TIDP:滑动窗向前允许偏移的TID间隔分钟数;TIDF值、TIDN值和TIDP值可根据实际情况设定。随着电表识别接受Token,电表将Token的TID存储在电表的存储区中,电表相应寄存器中的TIDF值、TIDNE值、TIDPO值、TIDC值也都随之发生变化。滑动窗偏移上下限值的计算公式分别为:TIDPO=TIDC+TIDPTIDNE=TIDC-TIDN在一般情况下,滑动窗的上限TID值TIDPO为当前TID值与TIDP值的和;滑动窗下限TID值TIDNE为当前TID值与TIDN值的差。例如:假设TIDC为100,TIDP为20,则TIDPO为100+20=120;TIDN为30,则TIDNE为100-30=70。参见图1a至图1e,列举了电表在一个基准时间内从电表接入系统准备开始服务到电表正常运行到电表运行接近下一个基准时间的整个服务过程的五种状态,其中电表以2014/1/100:00为基准时间,2016/1/100:00为底值TIDF(TIDF=1051200),滑动窗向前、向后允许的TID间隔分钟数分别为131040(3个月)、87840(2个月),同时电表所能存储最多50条TID记录。本发明首先利用token的TID域进行滑动窗偏移上下限的计算,从而得到TID滑动窗偏移区间,为电表进行TID识别提供判定条件。参见图2,本发明实施例提供的STS的token识别方法,包括以下步骤:S100、在电表初始化状态下,根据对滑动窗的相关参数设置,计算初始的TID滑动窗偏移区间;S200、电表初始化之后,根据初始的TID滑动窗偏移区间,对当前输入的token进行有效性识别;S300、在验证当前输入的token为有效token后,根据STS标准对当前输入的token的密钥有效性进行判定,若有效,则触发预设的TID滑动窗偏移机制,得到下一次输入的token的TID滑动窗偏移区间,并将有效token的TID存储在相应的TID存储区中。下面对上述实施例进行具体说明:在电表处于初始化状态时,需对滑动窗的相关参数进行设置,得到一个初始的TID滑动窗偏移区间。图1a状态一中电表处于初始化状态,TID存储区为空。电表的初始TID滑动窗偏移范围计算如图3所示。首先,判断电表是否处于初始化状态,如是,则当前TIDC=TIDF;否则TIDC为当前收到的Token的TID。接着计算TID滑动窗下限值TIDNE为TIDNE=TIDC-TIDN。判断TIDF是否比TIDNE大,如果TIDF>TIDNE,则TIDF优先作为滑动窗的下限值;否则滑动窗的下限值为TIDNE。之后,计算TID滑动窗上限值TIDPO为TIDPO=TIDC+TIDP。判断TIDPO是否超越224的边界,如果未超过边界,则TID滑动窗上限值为TIDPO,否则TID滑动窗上限值为224-1。根据以上流程及例子中的参数值,得到初始的TID滑动窗偏移区间为1051200与1182240之间。此处,需要说明的是,根据STS标准传输规范,TID的长度为24bits,最大的数值为224-1(当24bits都为1的时候),如果超过24bits,则意味着整个STS系统(电表、售电系统、密钥管理中心等等)进入下一个生命周期。接下来,电表初始化之后进入正常服务并开始接受第一个token。电表先对Token进行识别并确定其有效,否则不能触发电表进行TID滑动窗偏移操作。如图4所示,识别token的TID首先要判断该TID是否大于表中所设定的底值TIDF。如是,则进行下一步;否则,结束TID识别流程并返回结果。之后,判断token的TID是否落于TID滑动窗偏移范围之内。如果TID落入滑动窗偏移范围内,则进行下一步;否则,结束TID识别流程并返回结果。接着,判断token的TID是否已使用过。如果TID已存在电表的存储区中,说明Token已经使用过,结束TID识别流程并返回结果;如果电表TID存储区中不存在此TID记录,则TID未使用过。最后判定该token为有效token。再根据STS标准规定进行token密钥有效判定之后,触发表的TID滑动窗偏移机制。因此,假设第一个token的TID为1051202,表计根据以上说明过程进行判定,该token为有效token,并得到下一次可接受的tokenTID的范围区间为1051200与1182242之间,如图1b状态二所示。最后,电表将此TID存储在相应的TID存储区中。当用户一次进行多个token充值,多个token输入电表时用户可以不依照token生成的次序输入到表中。每输入一个token电表都会进行一次token识别过程(见图3)、TID滑动窗偏移计算过程(见图2)。随着输入到表中的tokenTID值越来越大,根据TID滑动窗偏移机制,当收到token的TID值(假设TID值为1237840)与滑动窗下限TIDN的差值大于底值TIDF,即TIDNE>TIDF,此刻TID滑动窗的范围为TIDNE到TIDPO之间,如图1c状态三所示的1150000~1368880范围区间。接着电表在TID存储区中存储token的TID。随着电表的正常运行,在接受某次token之后电表的TID存储空间将到达极限,售电系统根据系统中记录的电表最大存储空间,在用户进行下一次(或者更早,根据电表的TID存储空间而定)购电时需重新对电表设置底值TIDF以防止电表在识别token时因存储空间不够自动将存储区中最老的TID替换成当前token的TID,而造成被替换掉的token可以被重复使用的漏洞。电表底值重设之后售电点再进行售电。假定新的底值TIDF为1237840,售电系统发送底值TIDF重设命令和具体参数给电表,电表收到命令和数据后开始执行TIDF重设操作。具体操作过程如图5所示:第1步:判断新底值TIDF与电表TID底值大小。如果新TIDF比电表中的底值大,则进行下一步底值判断;否则新底值无效,结束重设流程返回信息。第2步:判断新底值是否比表中TID存储区中最小的TID还小。如是,则新底值无效,结束重设流程返回信息;如否,说明新底值有效并进行下一步。第3步:清除表中比新TIDF小(包括与新TIDF值相等的)的所有TID记录,给之后的tokenTID存储提供空间。第4步:电表重设底值TIDF。第5步:判断TIDF与当前TIDC大小。当TIDF>TIDC,则TIDC=TIDF;否则不执行任何操作。第6步:计算底值重设后的滑动窗偏移区间,具体流程如图5所示,步骤与之前计算滑动窗偏移区间类似。第7步:滑动窗偏移区间计算完成,结束电表底值重设流程,电表进入正常服务模式。电表完成整个底值TIDF重设后,如图1d状态四所示,TID存储区中将有空间继续存储之后的有效TID,为电表之后接收存储token的TID提供了空间。当电表下一次TID记录存满,售电点再一次要求电表执行TID滑动窗底值重设的操作。在电表正常运作到达下一个STS基准时间之前,售电点有可能需要对表进行多次底值重设以确保表存储区中有足够的空间存储token的TID以支持此判断机制的正常执行。因此售电系统需要记录电表当前底值和当前底值所对应的充值记录来确定下一次的底值,此记录可供电力局等单位进行用电充值分析及管理等。当即将到达下一个基准时间时,根据滑动窗偏移机制,TID滑动窗偏移上限值TIDPO将会超过224边界。如图1e状态五所示,当计算得到的滑动窗上限值TIDPO大于边界值时,则本次TID滑动窗区间上限值TIDPO=16777215,可识别的tokenTID范围区间为16689374~16777215。基于同一发明构思,本发明实施例提供的STS的token识别系统,包括计算模块、识别模块以及存储模块;计算模块,用于在电表初始化状态下,根据对滑动窗的相关参数设置,计算初始的TID滑动窗偏移区间;识别模块,用于在电表初始化之后,根据初始的TID滑动窗偏移区间,对当前输入的token进行有效性识别;存储模块,用于在验证当前输入的token为有效token后,根据STS标准对当前输入的token的密钥有效性进行判定,若有效,则触发预设的TID滑动窗偏移机制,得到下一次输入的token的TID滑动窗偏移区间,并将有效token的TID存储在相应的TID存储区中。作为一种可实施方式,计算模块包括初始化判断单元、滑动窗下限值计算单元、滑动窗上限值计算单元以及偏移区间计算单元;初始化判断单元,用于判断电表是否处于初始化状态;若是,则当前输入电表的token的TID值TIDC=TIDF,TIDF为TID滑动窗底值,为能被识别的token的TID最小值,但不包括该值,进入滑动窗下限值计算单元和滑动窗上限值计算单元;若否,则直接进入滑动窗下限值计算单元和滑动窗上限值计算单元;滑动窗下限值计算单元,用于计算TID滑动窗下限值TIDNE:比较TIDF与(TIDC-TIDN)大小,选择其中较大的作为TID滑动窗下限值TIDNE;其中,TIDN为滑动窗向后允许偏移的TID间隔分钟数,进入偏移区间计算单元;滑动窗上限值计算单元,用于计算TID滑动窗上限值TIDPO:TIDPO=TIDC+TIDP;判断TIDPO是否超越224的边界,如果未超过边界,则TID滑动窗上限值为TIDPO,否则对TID滑动窗上限值TIDPO赋值为224-1;其中,TIDP为滑动窗向前允许偏移的TID间隔分钟数,进入偏移区间计算单元;偏移区间计算单元,用于根据滑动窗下限值计算单元计算的TID滑动窗下限值TIDNE和滑动窗上限值计算单元计算的TID滑动窗上限值TIDPO,得到初始的TID滑动窗偏移区间。作为一种可实施方式,识别模块包括第一判断单元、第二判断单元以及第三判断单元;第一判断单元,用于判断当前输入的token的TID值是否大于预设的TID滑动窗底值;若是,则进入第二判断单元;否则,结束TID识别流程并返回结果;第二判断单元,用于判断当前输入的token的TID值是否落入初始的TID滑动窗偏移区间之内,如果落入,则进入第三判断单元;如果没有落入,结束TID识别流程并返回结果;第三判断单元,用于判断当前输入的token的TID是否在电表的存储区中,若是,则结束TID识别流程并返回结果;若当前输入的token的TID不在电表的存储区中,则判定该当前输入的token为有效token。作为一种可实施方式,本发明的token的识别系统,还包括底值重设模块;底值重设模块,用于在电表的存储区中的TID存储空间达到极限后,根据系统中记录的电表最大存储空间以及预设的新底值,对TID滑动窗底值进行重设。作为一种可实施方式,底值重设模块包括第四判断单元、第五判断单元、清除单元以及重设单元;第四判断单元,用于判断新底值与电表中存储的原来的TID底值的大小,如果新低值大于原来的TID底值,则进入第五判断单元;否则,结束重设流程;第五判断单元,用于判断新底值是否比电表中的TID存储区中存储的最小的TID还小,若是,则结束重设流程;如否,则进入清除单元;清除单元,用于清除电表中的TID存储区中存储的小于新底值的所有TID的记录,进入重设单元;重设单元,用于将新底值设为当前电表中TID滑动窗底值。本发明实施例提供的STS的token识别系统与前述token的识别方法为同一发明构思,发明原理相同,其实现过程可参照上述方法实施,此处不再冗述。本发明解决了电表对token有效性进行精准识别的问题,同时也解决了正常有效的token的意外过期问题,又可对用户充值的有效时间段进行限制,为预付费电力系统的用电充值管理提供了技术基础。以上的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1