具有反窃听功能的保密存储器的制作方法

文档序号:6663400阅读:243来源:国知局
专利名称:具有反窃听功能的保密存储器的制作方法
技术领域
本发明涉及一种保密存储器。特别地,本发明涉及一种保密存储器,它提供一个用于防窃听和不同口令组的鉴别协议,不同的口令组由保密存储器用户阅读并且写到保密存储器区域。
2、已有技术从十九世纪五十年代,随着餐卡的引进使用,出现了用于付款的塑料卡。从那时起,这种卡使用的蓬勃发展简直是非凡的。现在,不同的机构每年发行共数百万种卡,因此使用卡来付款并且记载信息简直是太普遍了。
最初,这些塑料卡经过模压制成,有一个签字线条,线条用于进行比较从而使卡具备安全生。然而,能够想象,这并不足以制止犯罪和误用。第一个安全性改进是在模压卡的背面添加一个磁条。带有磁条的塑料卡可能是现在用于付款的最流行方式,并且是可用的信息卡。磁条的存储空间允许记载的信息量比塑料卡表面模压的签字线条允许记载的信息量大的多。尽管这些卡设有多级保护,但是仍有人可以容易地通过访问适当的读/写设备来读、删除以及重写磁条上存储的数据。因此,这种卡不太适用于存储秘密数据,或者不太适用于存储在流通场所能够使用的数值。
为了解决以上这些问题,开发出了一种带有保密存储器的塑料卡。这些卡在行业中称为“智能卡”。保密存储器的存储区域经常划分为几块存储器。使存储器具备安全性的目的是为了制止未被授权的访问以及对这些存储块的篡改。安全性主要是通过硬件和软件的结合使用来实现的。使用保密存储器,就可以在卡上写不能被读或删除的秘密数据,并且利用依赖特定条件下产生的硬件和软件的结合使用,在执行读、写和删除这些操作之前控制读、写和删除,从而来防止写数据。
电话存储卡就是一个带有保密存储器并且已广泛应用的“智能卡”的例子。这些卡先预付款,在使用期间从存储器中电子存储的数值中扣除相应的数额。当然,为了防止误用,必须防止用户篡改卡来增加卡上存储的数值。如果是磁条卡,在卡上重写数值是很容易完成的。
在现有的技术中,用于防止篡改保密存储器来增加存储值的一种公知方式是提供一个只有发卡者知道的密码。如果呈现有效密码的攻击次数超过一个预定值,用于制止卡进一步使用的攻击计数器就会阻止为了确定密码的系统攻击。如果在攻击计数器到达极限值之前出现了密码,攻击计数器复位到零。每一个存储块都由一个消除码来保护,在消除存储块之前必须出现消除码。可惜的是系统攻击容易损坏这些消除码。
另一个防止篡改一个电话存储卡的方式实际上就是存储单元一旦写在卡上就不可能被删除。针对这种类型的卡,典型地是烧断保险丝,使存储器的删除功能失效。因此,在通过向存储器中写使卡中的数值减少时,就不能通过消除来把附加的值添加到存储器中。尽管这是一种防止篡改的相当完美的方法,但是由于一旦卡上的数值耗尽,该卡就不能通过增加另外的数值而重复使用,所以这种方法没有吸引力。
在现有技术中,取代口令保护的另一种方法是采用微处理器进行加密来识别智能卡是否为有效的智能卡。这种方法存在几个问题。首先,微处理器价格昂贵,耗电量大,还需要基本数量的代码来进行编程,另外还需要某种类型的随机存取存储器。第二个问题,微处理器卡是假定读卡所用的机器是合法的机器。因此,卡提供给读卡机的信息是能够搭线窃听的。
因此,本发明的一个目的是提供一层密码术鉴别,在智能卡中,这种密码术不需要使用微处理器。
本发明的另一个目的是利用密码术使智能卡和读卡机相互鉴别从而防止窃听。
本发明的另一个目的是利用密码术、口令两者或两者之一来保护每一个存储区域。
本发明的简要说明按照本发明的第一方面,智能卡中不使用微处理器,而是利用密码术来对智能卡和智能卡读卡机进行鉴别,其中,密码术仅仅是提供一个鉴别时预选的尝试号码,如果在访问智能卡之前没有复位,将会永远拒绝访问智能卡。
依据本发明的第二方面,利用密码术或口令或两者单独访问智能卡的每一个存储区。
附图的简要说明

图1说明本发明保密存储器方框图的总体系结构。
图2描述本发明划分出的EEPROM存储器的存储器分配图。
图3说明本发明对用户区域进行访问控制的配置寄存器。
图4说明适用于本发明的读卡机和智能卡的鉴别顺序的流程图。
优选实施例的详细说明本领域的普通技术人员都认识到,对本发明做的以下说明只是说明性的,而不是局限于这些内容。对于那些专业人员,本发明的其它实施例很容易从说明中得出暗示。
按照本发明,在把保密存储器整体装入智能卡这个过程艺中,涉及四组个体。第一个是安全卡的制造者。第二个是智能卡的制造者。第三个是智能卡的发行者或销售者。第四个是最终使用者。
本发明的保密存储器10的体系结构如图1的方框图所示。在保密存储器10中,有ISO接口12,电源管理14,鉴别单元16,数据传送器18,口令验证20,对复位的应答22,随机号发生器24,以及一个EEPROM存储器26。保密存储器10有五个引线,即,Vcc,接地线(GND),串行时钟引线(SCL),串行数据引线(SDA)以及复位引线(RST)。Vcc和GND连接到电源管理单元14,SCL、SDA和RST连接到ISO接口12。
在优选实施例中,Vcc输入引线是保密存储器读取机供应的正电压2.7V到5.5V。SCL输入引线是把正边缘时钟脉冲数据输入到设备,把负边缘时钟脉冲数据从设备中输出。SDA引线是用于串行数据发送器的双向引线,是开路一漏极驱动,并可用线连一“或”电路与任意数量的其它开路漏极或开路集电极设备相连接。当RST输入处于高脉冲时,保密存储器10将把符合ISO7816-3同步应答的可程式化数据以数据流的形式输出到32位应答,从而使EEPROM存储器26中的寄存器复位,重新设置协议。如果保密存储器10解开锁定,通过ISO接口,使用SDA和SCL,众所周知的ISO两线制串行协议就可以有效。对ISO接口12和复位的应答22做很好的补充说明属于本领域的普通技术人员的技术水平之内的内容,为了避免使公开内容过度复杂化因此而模糊本发明,在这里就不再公开说明。
为了防止对EEPROM存储器26进行未授权访问,未授权访问的两种可能情况必须进行定址。第一种情况的出现是因为保密存储器10从其制造者传送到卡制造者或者是智能卡从卡制造者传送到发卡者而造成的。为了防止在发卡者把卡发给最终用户使卡个人化之前,对保密存储器10进行未授权访问,由保密存储器制造者确定并传送给卡制造者和发卡者的密码,典型地称为传送码,必须用这个密码访问保密存储器。第二种情况,依据本发明,保密存储器必须具有安全性以保证授权最终使用者来使用智能卡,另外智能卡和智能卡读卡机都要确保可信。
现在转向图2,阐明EEPROM存储器26划分成多个存储器分区的存储器分配图30。在存储器分配图30中,说明每一个存储器分区在EEPROM26存储器中的地址以及字节数。例如,在存储器分配图30中通过0F8(HEX)在地址0处就能找到用户区0,用户区O分配有256个字节。为了更迅速地理解每一个存储器分区,把EEPROM存储器26的存储器配置图30分成三个扇区。
存储器配置图30中的扇区32分成了八个用户区,每一个用户区分配有256个字节。
存储器配置图30中的扇区34包括有一个配置区的几个分区。扇区34中的几个分区是装配区,访问区,鉴别区,秘密启动源区,测试区和口令区。这几个分区还要再分成几个分区,这些分区将在下面讨论。
装配区再分成一个对复位的应答,批记录代码,fab code和卡制造者代码。对复位的应答是32位寄存器,批记录代码是32位寄存器,fab code是16位寄存器。这些寄存器的内容由保密存储器的制造者进行编制程序。一旦对这些寄存器编制完程序,保密存储器制造者使用的保险丝就被烧断,这些将在下面进行说明。寄存器中的内容可以读,但是不能修改。卡制造者代码是32位寄存器,智能卡的制卡者能够在呈现出有效密码的时候对寄存器中的内容编制程序。如上所述,密码能够保证保密存储器在保密存储器制造者和智能卡制造者之间的安全传送。一旦这个寄存器已编制完程序,智能卡制造者使用的“保险丝”就被烧断,这个寄存器中的内容只能读,但是不能修改。
访问区分成八个8位的访问寄存器。每一个访问寄存器都有一个配置寄存器,这个配置寄存器能够控制其中一个用户区进行的操作以及在进行这些操作前必须满足的安全测试。从每一个访问寄存器呈现出有效密码时一直到智能卡发行者使用的保险丝烧断这段时间,都可以对每一个访问寄存器进行编制程序。访问寄存器可以自由地对其进行阅读。
举例说明的访问寄存器40如图3所示。在访问寄存器30中的配置位P0-P7分别是唯一程序,禁止修改,口令组,允许鉴别,允许读口令和允许写口令。在设置唯一程序配置位时,有关用户区的内容仅可以写入。在设置禁止修改配置位时,有关用户区的内容不能做任何改变。口令组的三个位决定了在进行读和写的访问时需要口令区的哪个口令。在口令区有八组口令,因此应该理解能够对口令组三个位进行配置来识别八组口令中的其中一个。更应该理解的是,如果在口令组中两个访问寄存器有相同的配置位,两个或更多个用户区可以使用相同的口令而捆在一起。在设置允许鉴别配置位时,必须满足在允许访问相关用户区前就能实现反窃听功能的鉴别协议,这将在下面描述。在设置允许读写配置位时,需要各自的用户区的读或写口令。
鉴别区又划分成一个鉴别尝试计数器(ACC),一个识别号和一个密码。ACC是一个八位计数器,它能够制止对鉴别协议的系统攻击,在允许访问所选择的用户区前需要这个鉴别协议。鉴别协议运行一次,ACC加1。如果八次鉴别协议的攻击还不成功,设备被完全锁定,任何人都不能进行访问,其中也包括保密存储器的制造者。每次鉴别协议成功时,ACC复位到零。
识别号是一个长达56位的一个号,智能卡发行者在呈现有效密码时对这个号编制程序。每一个发行的智能卡的号应该是不同的。应该理解,对于智能卡发行者能够对配置区34进行编程的每一种情况,智能卡的制造者在呈现有效密码的时候也可以对配置区34的相同部分进行编程。一旦智能卡发行者使用的保险丝被烧断,识别号就不能再修改。识别号可以自由地读取。
密码是由内部的随机号发生器产生的64位号码。在优选实施例中,智能卡发行者最初产生这个密码,它是识别号的一个变化形式。然后,在成功通过鉴别协议的每一个验证后,应智能卡读卡机的要求可以修改密码。一旦智能卡发行者使用的保险丝被烧断,密码就只能由随机号发生器24修改。随机号发生器的执行过程对本领域的普通技术人员来说是众所周知的,为了防止使说明书过度复杂化,在此就不再阐述。
秘密启动源区是一个64位的号,智能卡发行者在呈现有效密码时对这个号编制程序。智能卡发行者产生这个号码,它是识别号码的一个变化形式。一旦智能卡发行者使用的保险丝被烧断,就不能再读或修改秘密启动源。在呈现有效密码时只能读识别码。
测试区用于测试保密存储器10的所有协议,不需要安全性访问。
口令区分成八组口令,每组都包括一个读口令和一个写口令。与每一个口令相关的是口令攻击计数器(PAC)。每一个读或写口令是24位长,每一个PAC是8位长。智能卡发行者在呈现有效密码时可以定义并且读这些口令。在智能卡发行者使用的保险丝被烧断以后,如果在访问寄存器中已经设置了各自的允许读或写口令配置位,就需要一个有效口令来访问一个用户区。根据本发明的优选实施例,第八组口令允许访问所有的用户区被认为是制造的缺陷。
PAC,如以上描述的ACC一样,是一个八位计数器,在允许对所选择的用户区进行读或写访问之前需要这些口令,因此它可以制止对口令的系统攻击。口令出现比较一次,PAC加1。如果八次口令比较还不成功,设备被完全锁定,任何人都不能进行访问,其中也包括保密存储器的制造者。每次口令比较成功时,PAC复位到零。智能卡发行者在呈现有效密码时可以读PAC。在智能卡发行者使用的保险丝被烧断后,如果在适当的访问寄存器中已经设置了各自的允许写口令配置位,仅仅内在的逻辑电路才能写一个与一个用户区相关的特定PAC。PAC可以自由地读取。
为了避免使本发明的说明书复杂化而模糊本发明,在此就不再详细说明口令验证、PAC和ACC。对适用于本发明的口令验证和攻击计数器的实施的详细说明,公开于1997年10月3日待批申请序列号为___的申请(由发明人Jean-pierre Benhammou,Dennis Baran,Phil Tonget和Ed Terry申请,名称为“具有多级安全性的保密存储器”,代理人号为ATMDR-004),本申请的代理人接受委任,并在这里明确地引入参考文献。
扇区36是配置为一个8位寄存器的熔丝区。位0,1和2分别为保密存储器10制造者、智能卡制造者和智能卡发行者保留。在以上所述的保密存储器10制造者、智能卡制造者和智能卡发行者对配置区的每一部分配置后,通过把适当位的逻辑值设置为0,熔丝区寄存器中的适当位就永远被熔断。此后,按照以上所述的方法对配置区的几个部分进行存取。另外,应该理解的是,当保险丝烧断时,仅仅是在密码控制下烧断保险丝。还有,保险丝是顺序烧断的。换句话说,智能卡制造者所烧断的保险丝只能在保密存储器制造者烧断的保险丝的逻辑值为0时烧断。然而,如果智能卡制造者没有烧断卡制造者的保险丝,在卡发行者烧断卡发行者保险丝时将烧断卡制造者的保险丝。
按照本发明,对用户区的访问是由访问寄存器中的配置位控制的。如上所述,至于访问寄存器访问一个用户区,需要口令或鉴别协议或者两者都需要。例如,如果以公知的方式通过SDA引线向ISO串行接口时钟输入一个特定地址的写命令,用于所选择的用户区的访问寄存器将接受核查,配置位6和7是否需要一个存在的口令,是否必须满足鉴别协议(位5)。应该指出,ISO-7816-3串行接口是本领域普通技术人员的公知常识,因此,为了避免使说明书复杂化而模糊本发明,这里就不再说明驱动ISO-7816-3串行接口的命令的计时图所表示的信号。
如果在访问寄存器中设置与所选择的用户区相关的配置位而需要一个口令,连接有智能卡的智能卡读卡机将发出一个更正口令的命令。一旦更正口令顺序完成,智能卡读卡机发出一个停止条件,出现一个非易失性的写循环,在这个循环过程中,与更正的口令有关的PAC得以更新。为了确定读卡机提供的口令是否正确,智能卡针对所选择的智能卡地址需要读卡机执行一个肯定轮询序列,读取配置区中符合所选择的口令的口令尝试计数器。
如果对EEPROM存储器26的访问需要鉴别,就必须执行图4的流程图50中所示的鉴别协议。
在步骤52,执行同步步骤中的第一部分,其中把卡识别号,Nc和卡的初始密码Ci传送到读卡机。一旦完成这一顺序并且发出一个停止条件,出现一个非易失性的写循环来清除AAC的一新位。
在步骤54,读卡机由Nc和秘钥Ks计算出不同的秘密启动源Gc。如果读卡机不能正确地计算出Gc,读卡机就会因为没有Ks而被识别为不正确的读卡机,因此整个鉴别协议将会终止顺序步骤。
在步骤56,执行同步步骤中的第二部分,其中把随机值Qo从读卡机传送给卡。
在步骤58,卡根据秘密启动源Gc,Ci和Qo计算出中间密码Ci+1。
在步骤60,由Gc,Ci和Qo计算出读卡机鉴别值Q1,并由读卡机把该值传送给智能卡。
在步骤62,读卡机把步骤58计算出的Ci+1与步骤60计算出的鉴别值Q1进行比较。
在步骤64,如果Ci+1等于Q1,然后卡就认为读卡机是正确的,并且卡根据Gc,Ci+1计算出Ci+2,卡又与值Ci+2一起重新预置密码。否则,在步骤66,如果Ci+1不等于Q1,然后卡就认为读卡机是不正确的,Ci将保持不变。
在步骤68,卡把Ci+2传送给读卡机用于鉴别卡。
在步骤70,读卡机由Gc和Q1计算出Q2。
在步骤72,将值Ci+2与值Q2相比较。
在步骤74,如果Ci+2等于Q2,然后读卡机就认为卡是正确的,就可以进行访问。读卡机又和值Q2一起重新预置随机号Q0。否则,在步骤76就拒绝访问。
一旦出现生效的口令而满足鉴别协议,就可以访问配置区,并且能进行授权操作。
以上对本发明的实施例和申请做出了说明,显然本领域的技术人员可以看出在不脱离本发明实质的基础上对以上提及的发明可做出许多修改。因此本发明不局限于除附加权利要求中实质精神之外的内容。
权利要求
1.一种访问保密存储器中用户区的方法,包括以下步骤在同意访问上述用户区之前,核查上述用户区的一个访问寄存器,确定是否必须满足鉴别协议;在必须满足鉴别协议时执行鉴别顺序;在同意对上述用户区进行上述所希望的访问之前,核查上述用户区的一个访问寄存器,确定是否必须出现希望访问的有效口令;以及在同意对上述用户区进行上述希望的访问之前,如果需要符合上述希望的访问的有效口令,则执行一个口令验证顺序。
全文摘要
依据本发明的第一个方面,智能卡中不使用微处理器,而是利用密码术来对智能卡和智能卡读卡机进行鉴别,其中,密码术仅仅是提供一个预选的鉴别尝试号码,如果在访问智能卡之前没有复位,将会永远拒绝访问智能卡。依据本发明的第二方面,利用密码术或口令或两者单独访问智能卡的每一个存储区。
文档编号G07F7/10GK1278938SQ98811209
公开日2001年1月3日 申请日期1998年11月23日 优先权日1997年11月26日
发明者J·P·本哈莫, C·V·科尔诺特 申请人:阿特梅尔股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1