单位计数器的保护管理方法及实现该方法的安全模块的制作方法

文档序号:7585573阅读:201来源:国知局
专利名称:单位计数器的保护管理方法及实现该方法的安全模块的制作方法
技术领域
本发明的目的是位于存储器中的单位计数器的保护管理方法,具体地与终端联系的芯片卡。然而它也能应用在任何其它类型的存储器上。
在计数非常大的单位数目同时保持存储器的存储能力的情况中本发明特别有用。
存储器的存储能力(其被更新的适应性)由于电可擦除与可编程非易失性存储器(例如EEPROM)的制造商所用的技术而在时间上是有限的。
制造商只对有限次数的存储器更新(一次更新包括一次擦除操作跟随着一次编程或写)保证存储器的良好性能。超过这一次数存储器可能不再能正确地擦除或正确地编程。
平均起来,存储器制造商所保证的更新次数为每一存储单元100,000次左右。在单位计数器的情况中,包含在保持所述计数器的存储能力中的问题是所有中更难解决的,由于要计数的单位数目高及更新计数器的频率高。
下面具体对应用在磁卡电话领域中的芯片卡的情况描述本发明。
已知,在芯片卡领域中,终端与外部电子钱包之间的事务是围绕包含微处理器的安全模块(SM)进行的。通常将该模块集成在终端中。
安全模块的作用是专门保证终端外部的电子钱包卡的授权的检验。在磁卡电话的范围内电子钱包卡是电话卡(不能重新加载的),终端是磁卡电话(或电话间)而安全模块本身可以是诸如位于终端中的芯片卡。
应注意所述安全模块的部件的命令集称作“操作系统”。
安全模块的使用有可能给予磁卡电话的经营者检验持所述电话卡的客户插入的电话卡的手段。从而排斥伪造的磁卡。
除了检验功能之外,该模块还向磁卡电话经营者提供以安全方式管理单位计数器,该计数器记录在从所述磁卡电话进行电话通信期间预付款磁卡或电话卡的不同持有人所消费的所有单位。
这一功能开辟了多经营商解决方案的道路,其中电话卡的发放者(经营商)不是磁卡电话的唯一经营商。为此目的,在位于各磁卡电话中的安全模块的存储器内提供了专用于各经营商的单位计数器。
在磁卡电话的范围内,这一计数器必须能存储16兆个单位,这对应于在磁卡电话的计数器的平均寿命(大约三年)上测定在非常高频率的公共场所(诸如机场)能记录的电话单位的最大数目。
在电话通信的有些场合也可能需要所述计数器的更新。
为了使用现有技术的计数器存储如此之多的单位,必须采用24位存储器。然而在这一情况中,更新的次数会超过这一存储器的存储能力。因此这一解决方法是不能设想的。
本发明中,通过将单位计数器分解成至少两个主区来提供对这一问题的补救。
计数器的第一个存储区(区A)认为是位字段,耗用的通信单位对应于存储的、或“冲击”或“写入”或“接通”的每一位。也将存储在区A中的位的特征称为是“记号”。
第二较小的存储区(区B)的大小使之有可能编码要存储的单位的数目的最大值。
这些存储区是电可编程与电可擦除的非易失性存储器的存储区。
对于区A及不进入存储器编程的技术,当有一位存储在其中时认为存储单元是不能利用的。此后不加区别地使用名词存储的位或“接通的位”或“冲击的位”或写入的位来表示不能利用的存储单元,而用断开或未冲击的位来表示可利用(自由)的单元。
按照惯例,当其逻辑状态等于1时认为该位是接通的,而当其逻辑状态等于0时该为该位是断开的。
只有在下一次擦除整个区A(断开构成它的所有位)时才使接通的位可以利用(断开)。
因此本发明的目的更具体地说是用于电可编程的存储器中的单位计数器的保护管理的方法,按照这一方法,用户消费的单位数是用计数器记录的,主要特征在于它包含将单位计数器分解成至少两个存储区(A、B)、第一区(A)中为至少一个消费单位存储至少一位,而第二区(B)中存储对应于消费的总单位的值,只在消费的单位超过或达到第一区的未存储的位的数目时才更新第二区。
消费的单位是循环地记录在第一区中的。
一个周期对应于从第一区(A)的第一位到最后一位接通的序列。接通了所有的位时它便结束。
记录消费n个单位的操作包括下述步骤-读取第一区的内容并将未存储的位的数目与要记录的消费的单位的数目比较,-如果未存储的位的数目大于或等于要记录的单位的数目,则将要记录的位存储在所述区中,-如果这一数目较小,将这一位数存储在第一区中并通过执行更新第二区的操作将剩余的单位记录在第二区中,并擦除第一区,更新第二区(B)的操作包括在第二区中写入等于第一区(A)中未冲击的位的数目的当前值加上要存储的剩余的消费单位的新的编码的计数器值的步骤。
第二区的更新包括记录表示正在进行更新的指示器信息的先行步骤,然后当更新结束时,更新包含擦除第一区(A)及擦除指示器信息。
为了增进安全性,该单位计数器具有备分第二区(B)的区(SB)及这两个区各具有用于记录冗余码(CR、SCR)的字段,用于检验这两个区的内容的完整性。
记录消费n个单元的操作还包括检验计数器的状态的先行步骤,该步骤包括下述操作-检验当前正在更新指示器信息的不存在;-当指示器信息的确不存在时;-检验包含冗余码的字段的有效性-当字段有效时-记录n个单位;-当字段无效时-检测故障及停止计数器,-当指示器信息存在时-激活恢复操作重新建立计数器内容的完整性。
然后更新第二区的操作包括下述步骤-记录指示器信息,
-在备分区(SB)中拷贝第二区(B)的计数器的编码值,-在第二区(B)中记录计数器的新编码值,-擦除第一区(A),-擦除指示器信息。
恢复操作包括确定在哪一步骤上出现异常(断电),然后根据所确定的情况执行更新备分区(SB)与/或第二区(B)与/或第一区的步骤。
有利地,确定出现异常的步骤包括读取各区的内容以便确定异常是否出现在更新备分区(SB)期间,情况1,更新第二区(B)期间,情况2,擦除第一区(A)期,情况3,在更新第二区(B)与备分区(SB)之间,情况4,或在更新这两个区之后,情况5。
实际上,情况1中的恢复包括-将包含在第二区(B)中的值拷贝到备分区(SB)中,-通过记录等于前一个值加上第一区(A)的内容的新值来更新第二区(B),-擦除第一区(A),-擦除指示器信息(C2);在情况2中-将包含在备分区(SB)中的值加上包含在第一区(A)中的值拷贝到第二区(B)中,-擦除第一区(A),-擦除指示器信息(C2);在情况3中-擦除第一区(A)的内容,-擦除指示器信息(C2);在情况4中-实现按照情况2的步骤;在情况5中-实现按照情况3的步骤。
有利地,本方法还包括记录表示读或写第一区(A)的故障的信息,当不能在这一区中读或写时去激活所述区的步骤,及在各新周期上读这一信息,然后用更新第二区(B)的操作以编码的方式直接记录消费的单位的步骤。
表示当前更新的信息(C2)与表示对第一区的读与写的故障的信息(C1)是记录在所述计数器的第三区(C)中的。
本发明还涉及实施按照本发明的方法的安全模块。
这一模块可位于管理终端的用户所消费的单位的终端中,尤其是在电话终端中。
从下面参照附图以非限制性实例的方式给出的描述的阅读中,本发明的其它特征与优点将是明显的,其中-

图1示意性地描绘按照本发明的单位计数器;-图2A描绘按照本发明的方法记录n个单位的步骤;-图2B描绘图2A的先行检验步骤10;-图3描绘按照较佳实施例在第二区中记录单位(更新)的步骤;-图4描绘恢复机构的步骤;-图5示出按照本发明的改型。
下面描述的方法涉及对抗伪造(侵入或窜改)受保护的计数器。当计数器饱和时,该方法停止计数器并将这一事实通知使用它的应用。
在下面给出的示例应用中,并对应于在引言中引用的磁卡电话的情况,消费的单位为电话单位并且为了示例的目的在这里明确定义区A与B的大小。
为了克服在更新计数器(图1)期间切断电流的问题将区B进一步分裂。这一情况详述如下。
如已提到的,计数器的工作寿命直接与更新(擦除与写入)次数相关。因此,主要是找到减少更新次数的计数器结构及计数方法。
在本发明的范围内,消费的通信单位的存储如下产生。
假定将电话通信的持续时间分成时间间隔。一个时间间隔的持续时间对应于固定数目的消费单位。在本例中,消费单位的记录周期是用这些时间间隔定义的。
在各时间范围开始时,必须将消费的单位数存储在安全模块中。
因而,在总共需要13个单位及基本时间间隔包括3个单位的通信的情况中,安全模块内的单位计数器在通信期间将被更新5次并在通信时间结束时更新第六次。
用图2A所示的步骤10、20、30、40、50与60定义管理单位计数器的方法。
在计录单位之前包含从图2B详述的检验计数器的状态的步骤(步骤10)。
在每一次请求存储消费单位时,管理计数器的安全模块的操作系统检验区A中断开(可利用)的位的数目是否大于等于要存储的(图2A)的单位的数目。
肯定时,如果消费了n个单位便冲击区A中可利用的n位(用按照本发明的变型,可为n个消费单位的包提供冲击区A中n个可利用的位)。
这一操作不需要擦除而只需写数量来冲击区A中某些位一个动作。
当要存储的消费单位的数目n超过区A中剩余的可利用位的数目L时,立即断开区A中可利用的位L的数目并在区B中计数剩余的消费单位n-L。用下述更新操作将考虑进去这些剩余的位的新编码值记录在区B中区B的新值(单位总数)等于区B的当前值加上在区A中冲击的位数(值VA)及要存储的单位数n-L。
区B的更新产生一次读操作跟随一次擦除及写。
区A是完全擦除的(所有的位都再次可以利用)。
按照本发明也有可能当区A中可利用的位数不足时规定补充这一区A,然后用存储前面的值加上区A的内容的新值来更新区B,然后擦除区A并最后将剩余的消费单位存储在区A中(而不是将它们存储在区B中)。这一变型当然仍在本发明的原理的范围之内。
用这一方法,虽然消费单元的存储频率是高的,擦除区A与B的频率却低得多。同一方法适用于写入构成区A及最终构成区B的不同存储单元的频率。
擦除与写入构成单位计数器的存储单元的频率一方面直接与区A的大小另一方面直接与用来分解通信的粒度(粒度表示经营者预先确定的对应于若干单位的基本通信时段)相关。
应指出,为了在任何时间上知道磁卡电话所消费的单位的总数,只要在区B的当前值上加上区A中受冲击的位的数目即可。
在本发明的上下文中,建议使用附加功能来延长单位计数器的服务寿命。
这是因为已知将位字段细分成称作字节的接连的8位组。如上所述,区A与区B同样频繁地擦除。然而,由于编程设施或与所使用的部件相关的制约,冲击字节中的一位可能产生对所述字节内已冲击的位的新冲击。
因而属于区A的字节比构成区B的字节写入得更频繁(即其位受冲击)。这时区A比区B更紧张,因此计数器的工作寿命直接与区A的存储容量相关。
为了克服这一问题,在本发明的上下文中建议在单位计数器中提供包含至少一个用于存储信息C1(图1与图5)的单元的称作区C的附加存储区。
图5示出本方法的这一变型。
在这一变型中,记录消费单位之前的检验计数器的状态的步骤包含读取区C以便检验信息C1是否存在。
当区A中的存储单元不再能擦除或写入时便立即写入这一信息C1(由于传统方式提供检验存储器中写入或擦除的正确执行)。在这一情况中安全模块的操作系统决定去激活区A(步骤42)及只用区B工作(步骤80)。随着存储消费单位的每一次请求,擦除及重写区B。
相当明显,区B的存储容量将快速减少,但计数器尚能继续使用一定时间。
此外,为了提高计数器管理的安全性,有可能增加在存储操作期间出现电流切断时保证所述计数器的相关性状态的机构。设想抽出安全模块的操作是不适当的,因为它通常是安全集成在磁卡电话中的。说到这一点,可以用相同的方式处理抽出的情况。
在本发明的范围内,为了安全这一机构(下面称作恢复机构),区B提供有冗余码。此外还复制区B(图1、2B与3)。
这样定义的区SB用作前一个的备分。它是在对区B有任何改变之前更新的。
区SB在任何时间上包含区B在最后一次更新之前的值。
利用区C内的附加字节来指示存储操作是部分地还是全部地执行的;这便是指示器信息C2。
因而,在开始处理存储单位的请求时,存储C2。一旦已经完全执行了这一同一存储操作,便将其擦除。为了避免使字节C2受到过度压力,只在要存储的单位数大于区A中仍可利用的位的数目的情况中才利用后者(写然后擦除)。
如果不是这一情况,不利用字节C2,在区A中可利用的位中,将n位接通。结束存储操作。认为信息的损失是最小的。
当区A内可利用的位的数目不够时,主要激活该过程使它在出现异常时有可能随即启动恢复机构。
这是因为如果在已擦除区B之后而尚未再一次重新写入时出现电流切断,会丢失单位计数器中所有的信息。
下面详述任何记录之前检验计数器(图2B)的步骤。
该系统检验指示器C2的不存在(11)。
如果不存在指示器C2(12),系统检验包含冗余码的字段。
如果这些字段有效(13),记录消费的n个单位。
如果字段无效(14),便检测故障,停止计数器(并可能发生报警)。
在指示器存在的情况中(15),从图中详述恢复机构的使用。
下面详述按照(图3的)这一变型的更新区B的操作。
从图3中能看出(步骤51至55),首先写入指示器C2,并将编码在区B中的计数器的当前值,例如V0,拷贝到区SB中。然后更新区B(新值V1等于当前值加上区A中受冲击的位数及要存储的剩余的n-L个单位)。接着擦除区A,然后擦除指示区C2来指示已完全成功地执行了存储操作。
在所给出的描述中,每件事情都正常地发生,未曾在存储操作期间出现任何电源切断。
现在,如果出现电源切断,下面描述恢复机构的激活(图4)。
这是在下一次请求存储时激活的,无论区A内可利用的位数是否足以存储n个单位。
如果指示器C2是接通的,则在存储消费的单位之前安全模块的操作系统起动恢复机构。
可能发生若干情况。这是因为电源切断可能出现在更新区SB期间(情况1),更新区B期间(情况2),擦除区A期间(情况3)或在所述更新之间(情况4与情况5)。
恢复过程根据上面列出的不同情况必须有所区别。
当区SB不能正确地更新时(情况1),其冗余码SCR不符合。这时将包含在区B中的值V0拷贝到区SB中,然后更新区B(新值V1等于区B的当前值加上区A中的被冲击位的数目,值VA)。只丢失在中断存储期间要存储的单位的数目n-L。
然后擦除区A及指示器C2。
在区SB已正确地更新但区B尚未正确地更新的情况中(情况2),区SB的冗余码SCR是正确的。反之,区B的冗余码CR是不正确的。
然后更新区B如下区B的新值V1等于区SB的值V0加上区A中受冲击的位的数目,即值VA,V1=V0+VA。
在这一情况中和前一个一样,只丢失对应于在中断存储期间要存储的剩余单位数目n-L的信息。然后擦除区A及指示器C2。
通过只检验区SB及区B的冗余码,不可能知道电流切断发生在更新区SB及B之间(情况4)还是在更新了这两个区之后(情况5)。这是因为在这两种情况中冗余码都是正确的。
为了区别情况4与5,安全模块的操作系统比较区SB与B的值;V(SB)=V(B) 如果区SB包含与区B相同的值,则电源切断必定发生在更新区SB与B之间(情况4)。然后恢复机构的处理与上述(情况2)相同。
如果不是这种情况,因此区B一定已正确地更新过(情况5)。然后必须擦除区A及指示器C2。在这一情况中未曾丢失信息。
剩下要对付的是电流切断发生在擦除区A期间的情况(情况3)。这一情况类似于前面的情况(情况5)。
一旦执行了恢复机构,按照上面给出的本发明的描述存储要存储的n个单位。
权利要求
1.一种用于电可擦除与可编程存储器中的单位计数器的保护管理的方法,按照它用计数器记录用户消费的单位数目,其特征在于它包含将单位计数器分解成至少两个存储区(A,B),第一区(A)中为至少一个消费单位存储至少一位,及第二位(B)中存储对应于总的消费单位的值,只在消费的单位的数目超过或达到第一区(A)中未存储的位的数目时才更新第二区。
2.按照权利要求1的管理计数器的方法,其特征在于消费的单位是循环地记录在第一区(A)中的。
3.按照权利要求1与2的管理方法,其特征在于记录n个消费单位的操作包括下述步骤读取第一区(A)的内容并比较第一区(A)中未存储的位数(L)与要记录的消费单位数(n),如果未存储的位数(L)大于等于要记录的单位数(n),便将要记录的位(n)存储在所述第一区(A)中,如果数目(L)较小,则将L位存储在第一区(A)中并通过执行更新该区的操作将(n-L)个剩余单位记录在第二区(B)中并擦除第一区(A)。
4.按照权利要求1-3中任何一项的管理方法,其特征在于更新第二区(B)的操作包括下述步骤在第二区中写入一个等于当前值加上存储在第一区(A)中的位数与要存储的剩余消费单位(n-L)的新的编码的计数器值。
5.按照权利要求4的管理方法,其特征在于更新包括记录表示当前正在进行更新的指示器信息(C2)的先行步骤。
6.按照前面的权利要求中任何一项的管理方法,其特征在于单位计数器具有用于备分第二区(B)的区(SB),及在于这两个区各具有用于记录用于检验这两个区的内容的完整性的冗余码(CR,SCR)的字段。
7.按照权利要求4与5的管理方法,其特征在于记录n个消费单位的操作还包括检验计数器的状态的先行步骤,包括下述操作-检验当前正在更新的指示器信息是否存在-如果指示器信息的确不存在-检验包含冗余码的字段的有效性-当字段有效时-记录该n个单位;-当字段无效时-检测故障及停止计数器;-当存在指示器信息时-激活恢复操作来重建计数器内容的完整性。
8.按照权利要求6与7的管理方法,其特征在于更新第二区(B)的操作包括下述步骤-记录指示器信息(C2),-在备分区(SB)中拷贝第二区(B)的计数器的编码的值(V0);-在第二区(B)中记录计数器的新的编码的值,-擦除指示器信息(C2)。
9.按照权利要求8的管理方法,其特征在于恢复操作包括确定在哪一步骤中发生异常,然后根据所确定的情况执行更新备分区(SB)与/或第二区(B)与/或第一区(A)的步骤。
10.按照权利要求9的管理方法,其特征在于确定在哪一步骤上发生异常包含读取各区的内容以便确定异常是否发生在更新备分区(SB)期间,情况1,更新第二区(B)期间,情况2,擦除第一区(A)期间,情况3,在更新第二区(B)与备分区(SB)之间,情况4,或在更新这两个区之后,情况5,·在情况1中-将包含在第二区(B)中的值拷贝到备分区(SB)中,-通过记录等于老值加上第一区(A)的内容的新值来更新第二区(B),-擦除第一区(A),-擦除指示器信息(C2);·在情况2中-将包含在备分区(SB)中的值加上包含在第一区(A)中的值拷贝到第二区(B)中,-擦除第一区(A),-擦除指示器信息(C2);·在情况3中-擦除第一区(A)的内容,-擦除指示器信息(C2);·在情况4中-实现按照情况2的步骤;·在情况5中-实现按照情况3的步骤。
11.按照前面的权利要求中任何一项的管理方法,其特征在于包括记录表示在读或写第一区(A)时的故障(C1)的信息并在已可能在该区中读或写时去激活所述区的步骤,以及在各新周期上读取这一信息然后用更新第二区(B)的操作以编码的形式直接记录消费的单位的步骤。
12.按照权利要求5与11的管理方法,其特征在于指示当前正在更新的信息(C2)与表示对第一区的读与写中的故障的信息(C1)是记录在所述计数器的第三区(C)中的。
13.一种实现按照前面的权利要求中任何一项的方法的安全模块(SM)。
14.按照权利要求13的安全模块,其特征在于它是安装在管理消费单位的终端中的,特别是电话终端。
全文摘要
本发明涉及用于电可擦除与可编程存储器中的单位计数器的受保护的管理的方法,按照本方法,用计数器记录用户所消费的单位数,包括将单位计数器分解成至少两个存储区(A,B),第一区(A)中每消费一个单位冲击一位,及第二区(B)中存储对应于总消费单位的值,只在所消费的单位数超过或达到第一区中未受冲击的位的数目时才更新第二区。将安全模块的应用放在电话终端中。
文档编号H04M17/00GK1293862SQ99804228
公开日2001年5月2日 申请日期1999年2月10日 优先权日1998年3月20日
发明者C·A·科克-霍里兹, M·波利尔克, X·邦舍林 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1