产生响应的方法

文档序号:7600552阅读:263来源:国知局
专利名称:产生响应的方法
技术领域
本发明主要涉及用于验证例如智能卡的验证设备或基于保密密钥的类似设备。本发明具体涉及用于防止攻击者获得保密密钥的保护方法。保密密钥被用于诸如智能卡的验证操作,每个智能卡有一个用于确认其身份的个人保密密钥。但是,本发明不仅限于智能卡,本发明的解决方案可以应用于其它需要保护保密密钥的场合。但是,下面将以举例方式主要参考智能卡描述本发明。
背景技术
已知的智能卡包括一个存储器(例如一个EEPROM存储器),在存储器中存储一个保密密钥。该保密密钥通常由一个位串组成,位串长度不少于64比特。智能卡还包括一个处理器。为了确认其身份,智能卡与一个外部验证过程通信,由此该外部验证过程向智能卡提供一个由位串组成的输入。然后,智能卡的处理器从存储器中取出一个预先存储于其中的保密密钥,然后存储器根据一个预定函数进行计算,在该计算中使用提供给智能卡的位串和从存储器取出的保密密钥。智能卡把计算结果(即响应)从它的输出提供给该验证过程。
由于验证过程知道智能卡的保密密钥和智能卡处理器所使用的函数,因此它能够执行与智能卡相同的计算。如果由验证过程进行的计算的结果符合从智能卡的输出获得的结果,就确认了智能卡的身份,因为只存在一个包含所述保密密钥的智能卡,而该智能卡根据所提供的输入产生了所述响应。
与上述已知智能卡有关的一个缺陷是,攻击者有办法获得存储在智能卡存储器中的保密密钥。其中的一种方法是DPA(差量功率分析),其中重复地(几千次)把不同的输入提供给智能卡,并同时监测从智能卡的输出获得的响应、在计算期间由智能卡消耗的功率、和在计算期间由智能卡产生的辐射。通过保持该输入、功耗、辐射和响应的统计数字,攻击者可以获得智能卡存储器中存储的保密密钥。如果攻击者获得了保密密钥,他能够例如克隆该智能卡,即制造另一个存储相同保密密钥的智能卡。例如如果所述智能卡是用于对持卡人进行电子识别的个人身份卡,这种克隆可能造成严重危害。

发明内容
本发明的一个目的是避免上述问题并提供一种确保攻击者无法获得用于产生响应的保密密钥的解决方案。该目的由本发明的利用一个设备产生响应的方法来实现,该设备包括一输入,用于接收一个输入;计算装置,用于利用一第一预定函数产生一个响应于该输入和一个保密密钥的响应;一输出,用于进一步提供所述响应。本发明方法的特征在于,在该设备的存储器中存储一个密钥专用号码和一个编码密钥,该编码密钥是利用该保密密钥、该密钥专用号码和一个第二预定函数计算的,并且当产生响应时,从存储器读取所述密钥专用号码和编码密钥,通过使用所述第二预定函数的逆函数根据所述密钥专用号码和编码密钥来计算该保密密钥,并利用所计算的保密密钥来产生所述响应。
本发明还涉及一种应用本发明方法的设备。本发明的设备包括一输入,用于接收一个输入;计算装置,用于利用一第一预定函数产生一个响应于该输入和一个保密密钥的响应;一输出,用于进一步提供所述响应。本发明的设备的特征在于,进一步包括一存储器,用于存储一个密钥专用号码和一个编码密钥,该编码密钥是利用该保密密钥、该密钥专用号码和一个第二预定函数计算的;用于从存储器取出密钥专用号码和编码密钥并将它们提供给计算装置的装置,其在产生所述响应时利用编码密钥、密钥专用号码和所述第二预定函数的逆函数来计算保密密钥。
本发明还涉及一种可以使用本发明的方法和设备的系统。本发明的系统包括一个设备,该设备包括一输入,用于接收一个输入;计算装置,用于利用一第一预定函数产生一个响应于该输入和一个保密密钥的响应;一输出,用于进一步提供所述响应;一装置,该装置连接到该设备的输入以把所述输入提供给该设备,并连接到该设备的输出以接收所述响应,所述装置进一步包括一存储器,存储所述保密密钥;计算装置,用于利用该输入、该保密密钥和所述第一预定函数计算一个校验值;和用于把从该设备的输出获得的响应与该校验值进行比较并指示该响应是否符合该校验值的装置。本发明的系统的特征在于,该设备进一步包括一存储器,用于存储密钥专用号码和一个编码密钥,该编码密钥是利用保密密钥、密钥专用号码和一个第二预定函数计算的;用于从存储器取出密钥专用号码和编码密钥并将它们提供给计算装置的装置,其在产生所述响应时利用编码密钥、密钥专用号码和所述第二预定函数的逆函数计算该保密密钥。
本发明的基本思路是,当产生响应时从设备的存储器读取密钥专用号码并用于产生响应的预定计算中时,获得产生该响应的保密密钥变得非常困难。这是因为在此情况下,产生该设备的响应时使用的功耗和辐射不再仅仅取决于保密密钥、输入、和计算中使用的函数,而对密钥专用号码的处理也产生给定的可测量功耗和辐射,这使得更加难以获得保密密钥。在此情况下,攻击者无法确定哪部分可测量的功耗和辐射是由密钥专用号码的处理产生的,以及哪部分是由产生实际响应产生的。
根据本发明,通过使用一个第二预定函数和一个密钥专用号码对保密密钥编码。在此情况下,该编码密钥和密钥专用号码被存储在设备的存储器中。当产生响应时,从设备的存储器中读取编码密钥和密钥专用号码,从而使用第二函数的逆函数来计算用于产生响应的保密密钥。在此情况下,由计算保密密钥所产生的辐射和功耗可以防止攻击者确定在产生响应时所产生的辐射和功耗。此外,密钥根本不存储在设备的存储器中。已知的解决方案已经表明从存储器中读取保密密钥这样的操作会向攻击者提供大量信息。
该设备的计算装置使用一个单独的函数和一个单独的保密密钥,作为替代,保密密钥也可以是所使用的函数的一部分。在此情况下,例如,改变保密密钥实际上意味着改变了该设备专用函数,类似地,获得保密密钥实际上意味着得到了该保密设备专用函数。
密钥专用号码指的是一个实质上在编码密钥的整个使用期限期间使用的号码。换句话说,当一个编码保密密钥改变时,密钥专用号码也改变。例如,在使用新的编码保密密钥时,密钥专用号码例如可以由一个利用一个随机数发生器产生的随机数组成。另选地,密钥专用号码可以由例如一个伪随机数组成。但是,重要的是一个使用过的密钥专用号码不经常被重新使用。
因此本发明的解决方案的一个最显著的优点是,攻击者会觉得越来越难获得用于产生响应的保密密钥,例如,这是因为该设备的功耗和辐射不再对应于由产生该响应所造成的实际功耗和辐射,因此统计方法无法获得正在使用的保密密钥。
在本发明的设备的优选实施例中,该设备包括一个计算装置,该装置利用一个新的密钥专用号码和一个第二优点函数、以给定间隔(例如当该设备已经产生1000个响应时)计算一个新的编码密钥。该设备把所述新的编码密钥和新的密钥专用号码存储在它的存储器中以代替先前存储的相应内容。本发明的该实施例使得更难以获得保密密钥,因为攻击者能够保持在产生例如所述1000个响应期间的辐射和功耗的统计数据,而在为产生响应而执行的计算操作中发生了实质变化,因此统计数据是无用的。
本发明的方法、设备和系统的优选实施例在所附权利要求2,3,5,7和8中揭示。


下面参考附图以示例方式对本发明进行详细说明,其中图1是本发明的方法的第一优选实施例的流程图;图2是本发明的设备的第一优选实施例的方框图;
图3是本发明的设备的第二优选实施例的方框图;图4是本发明的设备的第三优选实施例的方框图;图5是本发明的系统的第一优选实施例的方框图;图6是本发明的系统的第二优选实施例的方框图。
具体实施例方式
图1的流程图可以用于例如验证一个智能卡,即,它用于确保所涉及的智能卡响应于提供的输入,实际产生一个其值取决于一个智能卡专用保密密钥的预定响应。该智能卡专用保密密钥意味着在使用的所有智能卡中,只有一个智能卡在产生响应时使用所述保密密钥。
在图1中,在框A中,把一个给定输入INPUT提供给设备,即一个智能卡。在实践中,所述输入由一个预定长度的位串组成。
在框B中,取出一个存储在该设备的存储器中的密钥专用号码RND。例如,其可以是一个在为该智能卡确定保密密钥时确定并存储在设备的存储器中的随机数。
在框C中,利用一个保密密钥A和一个输入INPUT由一个使用第一函数f的计算装置计算响应OUTPUT。在计算响应期间,还根据所读取的密钥专用号码RND在框B中执行预定计算操作。
如果保密密钥A被存储在设备的存储器中,与密钥专用号码RND相联系的计算操作对于由计算装置计算的响应OUTPUT没有影响。换句话说,在此情况下,使用一个合适的计算公式,因而该计算所产生的功耗和辐射仅在产生响应时使设备的总功耗和总辐射失真。
相反,如果保密密钥A不被存储在设备的存储器中,而是,除了密钥专用号码RND以外,一个利用保密密钥A、密钥专用号码RND和第二预定函数g计算的编码密钥A’(即,A’=g(RND,A))被存储在设备的存储器中,那么与密钥专用号码RND相关的计算操作会给出保密密钥A作为结果。在此情况下,所述第二预定函数g的逆函数g’被用于根据密钥专用号码RND和编码密钥A’计算保密密钥A(即,A=g’(RND,A’))。因此,由计算密钥A所产生的能量和辐射使在产生响应OUTPUT过程中所产生的总功耗和总辐射失真。
在框D中,从设备的输出提供该响应OUTPUT。例如,一个外部验证装置可以使用该响应来确保使用了正确的智能卡。其实现方式是知道函数f、保密密钥A和输入INPUT的验证装置执行对应于由智能卡执行的操作的计算操作。因此,由智能卡产生的响应OUTPUT应该与由验证装置执行的计算操作的结果相同。
图2是本发明的设备的第一优选实施例的方框图。图2中的设备例如可以是一个用于电子确认个人身份的身份卡;一个电子信用卡,其存储器存储了一定量的钱;一个许可卡,向一个连接到电视机的卫星接收机表示它被允许观看一个给定预约频道;或任何其它必须可靠验证的设备。
设备1包括一个计算装置,该计算装置由一个使用一给定计算函数f的处理器P构成。设备1还包括一个存储器M,例如一个EEPROM存储器。在存储器M中存储设备1的保密密钥A,保密密钥A由一个长度例如是64比特的位串组成。在存储器M中还存储了一个密钥专用号码RND,其也由一个位串组成。
当把一个给定输入INPUT提供给设备1的输入2时,处理器P从存储器M取出其中存储的保密密钥A和密钥专用号码RND。然后处理器P使用第一预定函数f计算响应OUTPUT,该响应值取决于保密密钥A和输入INPUT,即OUTPUT=f(INPUT,A)。在计算响应OUTPUT时,处理器P还利用函数f2和密钥专用号码RND执行计算。利用函数f2执行的计算不影响由处理器产生的响应OUTPUT,而该计算中的功耗和由该计算造成的辐射改变,因此攻击者不可能获得产生响应OUTPUT所需的能量和由此产生的辐射。
与图2中的情况不同,还可以使设备1包括两个处理器,一个处理器执行根据函数f的计算,另一个处理器执行根据函数f2的计算。
在图2的情况下,当处理器P已经完成函数f和f2的计算时,它把由函数f产生的响应OUTPUT提供给设备1的输出3,由此例如可以由一个外部验证过程读取该响应。
图3是本发明的设备的第二优选实施例的方框图。图3的实施例大致对应于图2的实施例。但是,在图3的情况中,把一个编码密钥A’而不是保密密钥A存储在存储器M’中。因此,没有保密密钥A被存储在设备1’中,使得在任何时间都不可能从存储器中读取保密密钥。尤其是,从存储器中读取保密密钥的方法为攻击者获得设备的保密密钥提供了大量信息。
在图3的情况下,编码密钥A’和密钥专用号码RND被存储在设备1’的存储器M’中。编码密钥A’是利用保密密钥A和密钥专用号码RND和一个第二预定函数产生的,即A’=g(A,RND)。
当处理器P’接收到通过设备1’的输入2提供的输入INPUT时,它从存储器M’取出编码密钥A’和密钥专用号码RND。然后,处理器P’在根据第二预定函数g的逆函数g’执行的计算中使用从存储器取出的位串A’和RND。作为这些计算的结果,处理器P’获得保密密钥,即A=g’(A’,RND)。
一旦处理器知道保密密钥A,它就在根据第一预定函数f执行的计算中利用保密密钥A,其结果是响应OUTPUT,即OUTPUT=f(INPUT,A)。
从编码密钥和密钥专用号码计算保密密钥的优点是,设备1’所使用的用于产生响应的能量和由此产生的辐射好象高于或低于它们的实际值。攻击者无法把产生响应OUTPUT时使用的实际能量和由此产生的辐射与其它能耗和辐射区别开来。
与图3中的情况相反,显然也可以使该设备包括两个处理器,一个处理器执行使用函数g’的计算,另一个处理器使用函数f。
图4是本发明的设备的第三优选实施例的方框图。图4的实施例大致对应于图3的实施例。但是,在图4的情况下,设备1”包括用于使用一个新的编码密钥A’和一个新的密钥专用号码RND的装置。
在图4的情况下,处理器P”包括一个计数器,用于记录处理器P”产生响应OUTPUT的次数。一旦所述计数器达到预定的极限值,例如1000,处理器P”就启动一个使用新的编码密钥A’和一个新的密钥专用号码RND的过程。在此情况下,处理器P”根据存储在存储器M”中的编码密钥A’、密钥专用号码RND和函数g’计算保密密钥A。处理器P”把如此获得的保密密钥A提供给第二处理器5”(与图4的示例相反,设备1”还可以包括单个处理器,在此情况下图4的处理器P”还执行图4的第二处理器5”的功能)。同时,处理器P”指导一个随机数发生器4”产生一个新的随机数,随机数发生器把该随机数提供给第二处理器5”。
第二处理器5”被编程以利用第二预定函数g执行计算。由此,它根据保密密钥A和新的随机数RND计算新的编码密钥A’,即A’=g(A,RND)。处理器5”把所述新的编码密钥A’与一个新的密钥专用号码RND(由一个随机数组成)一起存储在处理器M”中,以替换先前的编码密钥和先前的密钥专用代码。
最后,处理器P”把计数器清零,由此设备1”利用新的编码密钥和新的密钥专用号码直到计数器再次指示出处理器P”已经产生了对应于极限值(例如1000)那么多的响应OUTPUT,从而再次开始新的编码密钥的计算。
图5是本发明的系统的第一优选实施例的方框图。图5的系统使用结合图2描述的设备1。
设备1连接到装置10,装置10例如可以是一个验证装置。设备1和装置10不必物理地互连,但是装置10例如可以是一个计算机,其通过因特网或其它信息网络与设备1之间具有数据传输连接。如果设备1是一个插入到与因特网连接的计算机的读卡器中的电子身份卡,装置10能够通过因特网和设备1检验计算机的当前用户的身份,其中假设所关注的人的身份卡在此时被插入读卡器。
装置10包括一个存储器M2,其中存储所有可用设备(身份卡)的保密密钥。因此,当该装置希望确保一个给定设备1是所关注的设备时,它从存储器M2中取出所述设备1的保密密钥A以进行验证。由此,装置10中的控制单元11还产生一个预定输入INPUT。控制单元11把所述输入发送到设备1和该装置中的一个处理器P2。该装置中的处理器P2使用与设备1中的处理器P相同的函数f。由于两个处理器使用相同的函数f,相同的保密密钥A和相同的输入INPUT,由它们产生的响应OUTPUT也应该相同。为确认这一点,该装置包括一个比较装置12,其把从设备的输出3获得的响应与由处理器P2产生的响应进行比较,并根据比较结果产生例如一个表示比较结果的信号。
装置10还可以用于改变设备1的保密密钥。在此情况下,该装置的控制单元11产生一个新的保密密钥A,将其存储在存储器M2中并发送到设备1。在产生新的保密密钥A时,装置10中的一个随机数发生器13也产生一个新的密钥专用号码RND,该装置也将该随机数发送到设备1。因此,设备1接收到新的保密密钥A和新的密钥专用号码RND,将它们存储在存储器M中以代替先前的内容。
图6是本发明的系统的第二优选实施例的方框图。图6的实施例大致对应于图5的实施例。
但是,在图6的实施例中,装置10’不发送一个要存储在设备1’的存储器中的新保密密钥A。而是把新的保密密钥A和由随机数发生器13产生的新的密钥专用号码提供给处理器14。也把保密密钥A存储在存储器M2中。
处理器14使用第二预定函数g和密钥专用号码来计算编码密钥A’。因此,A’=g(RND,A)。然后,设备10’把新的编码密钥A’和密钥专用号码RND发送到设备1’,设备1’将它们存储在存储器M’中。设备1’如结合图3所述的那样使用所述编码密钥A’和密钥专用号码RND。
应该理解,上述说明书和相关附图仅用于例示本发明。很明显,本领域技术人员可以在不偏离所附权利要求中定义的本发明精神和范围的条件下进行各种不同变型和改进。
权利要求
1.一种利用一个设备产生响应的方法,该设备包括一输入(2),用于接收一个输入(INPUT);计算装置(P,P’,P”),用于利用一个第一预定函数(f)产生一个响应于该输入和一个保密密钥(A)的响应(OUTPUT),和一输出(3),用于进一步提供所述响应(OUTPUT),其特征在于在该设备的存储器(M’,M”)中存储一个密钥专用号码(RND)和一个编码密钥(A’),该编码密钥是利用该保密密钥(A)、密钥专用号码(RND)和一个第二预定函数(g)计算的,并且当产生响应(OUTPUT)时,从存储器读取所述密钥专用号码(RND)和编码密钥(A’),通过使用所述第二预定函数(g)的逆函数(g’)根据所述密钥专用号码(RND)和编码密钥(A’)来计算该保密密钥(A),并利用所计算的保密密钥(A)来产生所述响应(OUTPUT)。
2.根据权利要求1所述的方法,其特征在于所述第二预定函数(g)是一个设备专用函数,并且所述密钥专用号码(RND)是一个随机数。
3.根据权利要求1或2所述的方法,其特征在于当计算装置(P”)已经使用所述第一预定函数(f)预定次数时,计算一个新的编码密钥(A’)和一个新的密钥专用号码(RND)并将其存储在设备(1”)的存储器(M”)中。
4.一种设备(1,1’,1”),包括一输入,用于接收一个输入;计算装置(P,P’,P”),用于利用一个第一预定函数(f)产生一个响应于该输入(INPUT)和一个保密密钥(A)的响应(OUTPUT),和一输出(3),用于进一步提供所述响应(OUTPUT),其特征在于进一步包括一存储器(M,M’,M”),用于存储一个密钥专用号码(RND)和一个编码密钥(A’),该编码密钥是利用保密密钥(A)、密钥专用号码(RND)和一个第二预定函数(g)计算的;和用于从存储器(M,M’,M”)取出密钥专用号码(RND)和编码密钥(A’)并将它们提供给计算装置(P,P’,P”)的装置,其在产生所述响应(OUTPUT)时利用编码密钥(A’)、密钥专用号码(RND)和所述第二预定函数(g)的逆函数(g’)来计算保密密钥(A)。
5.根据权利要求4所述的设备,其特征在于设备(1”)包括编码装置(5”),用于利用保密密钥(A)、一个要提供给编码装置的新的密钥专用号码(RND)和所述第二预定函数(g)计算一个新的编码密钥(A’),并且设备(1”)包括以编码装置(5”)计算的新编码密钥(A”)和新的密钥专用号码(RND)替换存储器(M”)中存储的编码密钥(A’)和密钥专用号码(RND)的装置。
6.一种系统,包括设备(1,1’,1”),具有一输入,用于接收一个输入(INPUT);计算装置(P,P’,P”),用于利用一个第一预定函数(f)产生一个响应于该输入(INPUT)和一个保密密钥(A)的响应(OUTPUT),和一输出(3),用于进一步提供所述响应(OUTPUT),和装置(10,10’),该装置连接到该设备(1,1’,1”)的输入以把所述输入(INPUT)提供给该设备,并连接到该设备的输出以接收所述响应(OUTPUT),所述装置(10,10’)进一步包括一存储器(M2),存储所述保密密钥(A);计算装置(P2),用于利用该输入(INPUT)、保密密钥(A)和所述第一预定函数(f)计算一个校验值;和装置(12),用于把从该设备(1)的输出获得的响应(OUTPUT)与该校验值进行比较并指示该响应是否符合该校验值,其特征在于该设备(1,1’,1”)进一步包括一存储器(M,M’,M”),用于存储一个密钥专用号码(RND)和一个编码密钥(A’),该编码密钥是利用该保密密钥(A)、密钥专用号码(RND)和一个第二预定函数(g)计算的;和用于从存储器(M,M’,M”)取出密钥专用号码(RND)和编码密钥(A’)并将它们提供给计算装置(P,P’,P”)的装置,其在产生所述响应(OUTPUT)时利用编码密钥(A’)、密钥专用号码(RND)和所述第二预定函数(g)的逆函数(g’)来计算保密密钥(A)。
7.根据权利要求6所述的系统,其特征在于所述装置(10’)包括用于利用保密密钥(A)、密钥专用号码(RND)和第二预定函数(g)计算编码密钥(A’)的装置,和用于把编码密钥(A’)和密钥专用号码(RND)存储在设备(1’)的存储器(M’)中的装置。
8.根据权利要求7的系统,其特征在于所述装置(10’)进一步包括一随机数发生器(13),用于在计算编码密钥(A’)期间产生密钥专用号码(RND)。
全文摘要
本发明涉及一种设备(1),其包括:一输入,用于接收一个输入;计算装置(P),用于利用一个第一预定函数(f)产生一个响应于该输入(INPUT)和一个保密密钥(A)的响应(OUTPUT),和一输出(3),用于进一步提供所述响应(OUTPUT)。为了防止攻击者获得保密密钥,该设备进一步包括一个用于存储密钥专用号码(RND)的存储器(M),和用于从存储器(M)取出密钥专用号码(RND)并将其提供给计算装置(P’)以在产生所述响应(OUTPUT)时根据密钥专用号码(RND)进行预定计算操作(f2)的装置。
文档编号H04L9/32GK1361959SQ00810435
公开日2002年7月31日 申请日期2000年7月14日 优先权日1999年7月16日
发明者劳雷·帕特罗 申请人:塞特克有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1