首页 / 处理密钥

处理密钥失效专利 发明

技术内容

技术领域 本发明涉及密钥的处理,使得外来攻击者无法找到某装置的密钥。本发明 主要涉及用来验证某装置(如智能卡)的密钥处理。但要注意:尽管本发明主 要结合智能卡及验证操作进行描述,本发明仍可用于其它方面。 背景技术 已知智能卡的验证通常以请求-响应过程为基础。智能卡在验证中所用的 智能卡专用密钥被存储在智能卡的存储器中。与验证有关的验证装置将一个输 入发送给智能卡。智能卡在输入、密钥和预定的验证函数的基础上计算响应, 并把响应提供给验证装置。智能卡和验证函数所用的密钥还对于验证装置是已 知的,或者还对于例如与验证装置通信的验证中心是已知的。因此,验证装置 或验证中心能够进行与智能卡相似的运算操作,在这种情况下,智能卡应该对 发送来的输入产生的响应被通知给验证装置。如果验证装置从智能卡接收到的 响应是正确的,验证装置确定智能卡的验证已经成功。与已知的智能卡有关, 验证操作也可与上述的操作相反。此时,智能卡验证外部装置,这就意味着输 入从智能卡传送到外部装置,接着,响应从外部装置传送到智能卡。这样,由 智能卡验证已经接收到对其产生的输入的正确响应。 包括密钥的装置是先前已知的,它包括:控制装置运行的处理器;通过总 线与处理器相连的存储器;以及通过所述总线与存储器和处理器相连的辅助处 理器。在这些已知的装置中,密钥存储在存储器中。但是,由装置中的辅助处 理器进行产生响应所必需的运算操作,这意味着为了产生响应,必需通过上述 的总线经处理器将密钥由存储器传输给辅助处理器。将密钥通过总线从存储器 传输给辅助处理器的过程有可能为外来攻击者提供有助于找到密钥的信息。如 果外来攻击者成功地找到密钥,这就意味着攻击者通过制作另一个使用与原始 装置相同的密钥的装置,能够克隆该装置。 发明内容 本发明的目的之一就是要消除上述的问题,并提供一种使外来攻击者更难 找到某装置的密钥的解决方法。该目的通过本发明中处理一个装置中的密钥的 方法得以实现,所述装置包括存储器和通过总线与存储器相连的辅助处理器; 所述方法包括:由辅助处理器在一个输入、所述密钥和一个预定的计算函数的 基础上产生一个响应。本发明的方法的特征在于包括以下一些步骤:对所述密 钥编码并将编码后的密钥存储在所述存储器中;从存储器中取出所述编码密钥 并通过所述总线将其传送给辅助处理器;以及通过辅助处理器的内部操作对密 钥解码并产生所述响应。 本发明的目的还通过一种装置得以实现,该装置包括:控制该装置运行的 处理器;通过总线与处理器相连的存储器;以及通过所述总线与处理器和存储 器相连的辅助处理器,所述辅助处理器包括:在一个密钥、一个预定的计算函 数和通过所述总线发送给辅助处理器的一个输入的基础上产生响应的计算装 置;以及通过所述总线传送所述响应的装置。本发明的装置的特征为:所述密 钥在编码后存储在所述存储器中,所述辅助处理器包括通过所述总线从存储器 接收所述编码密钥的数据寄存器,辅助处理器的计算装置包括从数据寄存器中 的编码密钥计算出密钥的解码函数,并且辅助处理器包括钥匙寄存器和内部总 线,通过该总线辅助处理器将密钥存储在所述寄存器中,计算装置的计算函数 从所述寄存器取出所述密钥,以产生所述响应。 本发明的基础思想为:当将存储器与辅助处理器相连的装置总线内传输的 密钥决不会是未编码的密钥时,外来攻击者找到密钥的难度将会更大。这样, 外来攻击者通过监视总线通信将会一无所获。根据本发明,密钥在被编码后存 储在存储器中。密钥通过总线从存储器以编码的形式传送给辅助处理器。外来 攻击者不知道密钥是如何被编码的,这就是为什么攻击者并不会因找到编码密 钥而受益。 在编码密钥被传送给辅助处理器之后,编码密钥被解码,即,由编码钥匙 产生密钥,并通过辅助处理器内的内部总线被传送给辅助寄存器的外部钥匙寄 存器。这样,就没有必要在辅助处理器外以未编码的形式处理密钥。本发明的 解决方法的最大优点为:外来攻击者找到装置的密钥的难度更大。 本发明的方法和装置的优选实施例在所附权利要求2、3、5和7中说明。 附图说明 在下文中将以举例方式结合附图对本发明进行更详细的说明,其中: 图1为已知的智能卡; 图2为本发明装置的第一优选实施例; 图3为本发明装置的第二优选实施例;以及 图4为本发明方法的第一优选实施例的流程图。 具体实施方式 图1为已知的智能卡。图1的智能卡包括:通过总线5互连的处理器1, 存储器M和辅助处理器2。连接电路6与总线相连,智能卡通过它的总线5通 过电路6与外部装置相连。与验证有关,外部装置发送的一个输入通过总线5 被发送给辅助处理器2。在接收该输入后,辅助处理器2通过该输入、密钥K 和预定的验证算法产生一个响应。该响应通过总线5和连接电路6从辅助处理 器发送给外部装置。 为了验证智能卡,密钥K被存储在它的存储器M中,并通过总线5取出到 辅助处理器的钥匙寄存器R1中(箭头A)。与验证有关,输入从外部装置通过 总线5被发送给辅助处理器的数据寄存器R2。辅助处理器2的计算器3从钥匙 寄存器R1中取出钥匙K(箭头B)并从数据寄存器R2取出输入,之后,计算 器在预定的验证函数的基础上计算响应,接着,辅助处理器将响应提供给数据 寄存器R2。响应从数据寄存器R2通过总线5被传送给外部装置。 上述的智能卡的最大缺点就是处理密钥的方法。密钥K是智能卡专用的, 即为每张智能卡存储一个唯一的密钥。因此,只有一张智能卡对提供给一个特 定智能卡的与验证有关的输入产生预定的响应。密钥通过总线5从存储器传送 给辅助处理器的事实为外来攻击者提供了找到密钥的机会。如果攻击者成功地 找到密钥,这就意味着外来攻击者能够(至少在理论上)制作另一张使用与原 始智能卡相同的密钥的智能卡(克隆卡)。 图2为本发明装置的第一优选实施例。在下文中,假设图2中的装置是一 张智能卡,并且,智能卡的密钥专用于验证。 图2中的智能卡包括:存储器M,如EEPROM,其中存储了经过编码的密钥 K’。实际中,可以例如通过应用预定的编码函数f在密钥K的基础上计算编码 密钥K’来对密钥编码,即K’=f(K)。 为了给辅助处理器9的计算器8提供与验证有关的密钥,编码密钥K’通 过总线5从存储器M取出到数据寄存器R2(箭头C)。计算器8能够从数据寄 存器R2重新得到编码密钥K’,并且能够应用编码函数f的逆函数f’计算密 钥K,即K=f’(K’)。在运算之后,辅助处理器将密钥K提供给数据寄存器R2。 为了足够安全地处理密钥,上述的编码函数f及其逆函数应该是外来攻击者无 法获得的秘密函数。 根据本发明,辅助处理器5包括:内部总线7,该总线使得辅助处理器能 够将计算出的密钥K从数据寄存器R2传送到钥匙寄存器R1(箭头D)。这样就 不必通过智能卡的总线5传输密钥K,优点就在于使外来攻击者找到密钥的难 度增大。 计算器8能够以与图1的智能卡相似的方式从钥匙寄存器R1重新得到与 验证有关的密钥K。 根据本发明,可以用一个新的密钥替换智能卡的密钥来改变它。然后,外 部装置将新的密钥提供给智能卡。新的密钥在被提供给智能卡时可以被编码。 接着,经过编码的新密钥通过总线5被提供给辅助处理器的数据寄存器R2。在 这之前(例如,当智能卡与外部装置相连时),辅助处理器所用的密钥K已经 被存储在其钥匙寄存器中。辅助处理器的控制器4也接到处理器1的通知:新 的编码密钥被存储在它的数据寄存器R2中。随后,辅助处理器先把新密钥当 作一个与验证有关的输入来处理。接着,辅助处理器用钥匙寄存器中的密钥和 辅助处理器所用的验证函数为新密钥解码。当找到新密钥时,辅助处理器用编 码函数f为其编码,之后,新的经过编码的密钥从辅助处理器发送给存储器M, 在存储器M中代替先前经过编码的密钥。 图3为依据本发明待验证的装置的第二优选实施例。在下文中,假设图3 中待验证的装置是一张智能卡。 图3中的智能卡与图2中的大致相同,即,图3中的智能卡的辅助处理器 9’还包括内部总线7,通过总线7密钥K被从数据寄存器R2发送给钥匙寄存 器R1。但是,图3中的实施例与图2中的不同之处在于:图3的实施例中,辅 助处理器9’包括一个附加寄存器,即,一个第二钥匙寄存器R3。第二密钥K2 存储在第二钥匙寄存器中。计算器8’用密钥K2来计算验证中所用的密钥K。 为了能够进行验证,从存储器M中重新得到编码密钥K’。用存储在第二钥 匙寄存器R3中的第二密钥K2和预定的编码函数显式地为钥匙编码。编码密钥 K’通过总线5被提供给数据寄存器R2(箭头C)。接着,计算器8’利用编码 密钥K’、第二密钥K2和所述预定编码函数的逆函数计算密钥K,并且辅助处 理器将密钥K提供给数据寄存器R2。密钥K通过总线7从数据寄存器R2被发 送给钥匙寄存器R1(箭头D),计算器8’可以从钥匙寄存器R1重新得到该与 验证有关的钥匙(箭头E)。 与图2中的实施例相比,图3中的实施例的优点在于:计算器用来从编码 密钥K’计算密钥K的函数,即解码函数,可以是公开的。换句话说,外来的 攻击者不能利用他/她所知道的在计算密钥K中采用的函数,因为外来的攻击 者不知道第二钥匙寄存器R3内的第二密钥K2。因此,即使外来攻击者既了解 编码密钥K’又了解上述的函数,他/她仍不能找到验证中所用的密钥K。 图3中的实施例还使得不同用途的几个编码密钥能够存储在存储器M中。 所有的这些编码密钥的解码使第二钥匙寄存器R3中的第二密钥K2成为必要。 从而辅助处理器9’可以如上所述在给定的时间对所需密钥解码并储存在钥匙 寄存器中。 图3的实施例还使得存储器M中存储的密钥(或多个密钥)能够如图2所 述改变。另一方面,很可能地,存储在第二钥匙寄存器R3中的第二密钥几乎 从来不需要改变,因为只有智能卡“知道”  第二密钥,即,没有外部装置需 要知道第二密钥是什么。而且第二密钥从来不会在辅助处理器外传送,所以外 来攻击者不可能成功地找到第二密钥。 图4为本发明的方法的第一优选实施例的流程图。图4的流程图可以用于 智能卡的验证,如图2或图3描述的。 在框10中,智能卡的密钥被预定的编码函数编码。在框11中,编码密钥 被存储在智能卡的存储器中。 当智能卡与外部装置相连并且要验证智能卡时,在框12中从存储器重新 得到编码密钥,编码密钥被传送给辅助处理器的数据寄存器。在框13中,辅 助处理器用编码函数的逆函数为编码密钥解码。接着,经过解码的密钥,即密 钥,通过辅助处理器的内部总线被传送给辅助处理器的钥匙寄存器。 在框15中,智能卡从外部装置接收输入。输入通过智能卡的总线被传送 给辅助处理器的数据寄存器。在框16中,辅助处理器对智能卡接收的输入产 生一个响应。辅助处理器在预定的计算函数和存储在钥匙存储器中的密钥的基 础上产生响应。辅助处理器将响应存储在它的数据寄存器中,响应从该寄存器 通过智能卡的总线被发送给外部装置。 如上文所述,智能卡的密钥从来不需要提供给智能卡的总线,因为所有与 处理密钥相关的步骤(框13至16)都可以作为辅助处理器的内部操作完成。 应该了解的是,上文中的描述和相关附图只是用来说明本发明。对于熟悉 本领域的人而言,很明显,在不偏离本发明所附权利要求的范围和实质的条件 下,本发明可以以不同方式被改变和调整。