使用公钥和会话密钥的认证的制作方法

文档序号:10654809阅读:245来源:国知局
使用公钥和会话密钥的认证的制作方法
【专利摘要】一种用于认证数据的方法,包括:将公钥和会话密钥ID的代表的多个组合存储(302,304)到非易失性存储器中。输入(402)有效载入以及附随公钥、会话密钥ID、和有效载入的签名。签名是有效载入和一密钥对中的私钥的函数(118),该密钥对包括附随公钥和私钥。根据附随公钥和会话密钥ID以及被存储在非易失性存储器中的组合,并且根据签名和有效载入,确定(406,410,418,420)有效载入的可靠性。响应于确定该有效载入是可靠的,处理(424)有效载入,以及响应于确定该有效载入不是可靠的,禁止(422)有效载入的处理。
【专利说明】
使用公钥和会话密钥的认证
技术领域
[0001]本申请公开的内容大体涉及数据认证。
【背景技术】
[0002]认证处理通常是数据的接收者藉以确定所接收的数据是否来自可信源的一个过程。要被认证的数据可以是例如可执行程序、用于可编程逻辑的配置数据、电子邮件消息或应用程序数据。
[0003]—种用于认证的方法依赖于公钥-私钥对。发送者使用密钥对中的发送者的私钥将数据进行签名,从而形成对该数据的签名。接收者可以使用密钥对中的发送者的公钥和所接收的数据来确定随数据发送的签名是否为该发送者的签名。如果签名如预期的那样对应于所接收的数据,则所接收的数据被认证。否则,所接收的数据可能是从不可靠的源发送而来,或者可能已经被篡改。
[0004]被接收设备利用来认证输入数据的公钥典型地被存储在设备的非易失性存储器中。某些实现方式提供了撤消公钥的能力。撤销公钥使得该密钥在以后使用时失效。在大多数情形下,当当前的公钥被撤销时,可以建立新的公钥。
[0005]快闪存储器常常被使用来存储公钥,因为它是非易失性的,并且可以被重新编程。然而,对于某些应用,快闪存储器可能是不适用的。例如,现场可编程门阵列(FPGA)是通过使用SRAM技术制造而成的。把快闪存储器结合到基于SRAM的器件中,在技术上具有挑战性并且成本过高。因此,有时使用电熔丝(e-fuses)来存储公钥。然而,相对于由电熔丝的状态表示的少量信息来说,电熔丝占用了较大的面积。所以,希望有一种成本效益好的用于存储和撤销公钥的系统。

【发明内容】

[0006]本申请公开了一种认证数据的方法。该方法包括:将公钥和会话密钥识别号(IDs)的代表的多个组合存储在非易失性存储器中。输入有效载入(payload)和附随公钥、会话密钥ID、以及有用负荷的签名。签名是有效载入和密钥对中的私钥的函数,其中密钥对包括附随公钥和私钥。该方法根据附随公钥和会话密钥ID以及被存储在非易失性存储器中多个组合,以及根据签名和有效载入,确定有效载入是否可靠。响应于确定有效载入是可靠的,处理所述有效载入。响应于确定有效载入不是可靠的,禁止处理所述有效载入。
[0007]本申请还描述了一种认证系统。该系统包括非易失性存储装置和处理器。非易失性存储装置可被配置为存储公钥和会话密钥ID的代表的多个组合。处理器被耦接到非易失性存储装置,处理器可配置成输入有效载入和附随公钥、会话密钥ID和有效载入的签名。签名是有效载入和一密钥对中的私钥的函数,该密钥对包括附随公钥和私钥。处理器还被配置成根据附随公钥和会话密钥ID及被存储在非易失性存储器中的多个组合,以及根据签名和有效载入,确定有效载入是否可靠。响应于确定有效载入是可靠的,处理器处理所述有效载入。响应于确定有效载入不是可靠的,处理器禁止处理所述有效载入。
[0008]通过考虑下面的详细说明和权利要求将进一步认识到其它特性。
【附图说明】
[0009]这些方法和系统的各种方面和特性通过查阅下面的详细说明和参考附图将变得更明白,其中:
[0010]图1是流程图,显示了对于有效载入的认证信息的构建,并且显示了为了能够撤销认证密钥而进行的有效载入的认证;
[0011]图2是显示了某一系统的框图,在该系统中,使用认证密钥来控制系统的引导和/或配置;
[0012]图3是用于初始地配置认证系统的过程的流程图;
[0013]图4是通过使用公钥和会话密钥ID来认证输入有效载入的过程的流程图;
[0014]图5是撤销公钥或会话密钥ID的过程的流程图;以及
[0015]图6是示例性的SOC架构,可以在该架构上使用在此描述的各种方法来实施系统。
【具体实施方式】
[0016]本申请的系统和方法提供了一种用于安全地管理认证密钥、而同时增加在设备的寿命中可以使用的密钥的数目的方法。该系统和方法使用公钥、会话密钥识别符(ID)、和有效载入签名来认证有效载入。与会话密钥ID相关联的公钥和会话密钥的撤销,只有在用已被认证的配置数据或程序代码来引导系统之后才能被许可。撤销密钥也被称为使得密钥无效。
[0017]在一个实施方式中,会话密钥是在引导或初始配置设备后被用来认证软件或硬件载入的公钥。被存储在设备上的另一个公钥(或根密钥(root key))和会话密钥ID可以用来认证初始引导程序或硬件配置以及伴随的会话密钥。在设备被配置或引导后,可以通过使用会话密钥来认证随后载入的软件或硬件配置。这使得根密钥的使用最小化。从下面公开的内容可以明显地看出,用于撤销会话密钥的方法提供了管理会话密钥的使用的灵活性。
[0018]该系统具有非易失性存储装置,用于存储公钥和会话密钥ID的代表(representat1n)的多种组合。该代表可以是实际的公钥和会话密钥ID的数值的二进制格式,或可以是公钥和会话密钥ID的散列(hash)数值的二进制格式。为了易于说明,当涉及公钥和会话密钥ID的代表时,可以使用公钥和会话密钥ID。
[0019]输入到系统的有效载入伴随有公钥、会话密钥ID和有效载入的签名。签名是有效载入和密钥对的私钥的函数,其中密钥对包括附随公钥与私钥。所述系统包括处理器,该处理器可以确定有效载入是否为可靠的。有效载入的可靠性不仅仅是根据有效载入的签名而被确定,而且也是根据附随公钥和会话密钥ID以及被存储在非易失性存储器中的公钥和会话密钥ID的代表的多个组合而被确定的。
[0020]如果有效载入是可靠的,则处理器允许有效载入被处理。如果有效载入不是可靠的,则处理器停用有效载入的进一步的处理。在示例的应用中,有效载入的处理可能必须得用包含在有效载入中的程序代码来引导程序,或者必须得配置诸如存在于片上系统(SOC)中的可编程逻辑。
[0021]图1是流程图,显示了对于有效载入的认证信息的构建,并且显示了为了能够撤销认证密钥而进行的有效载入的认证。在示例的应用中,有效载入例如可以是用于处理器的引导程序或用于可编程逻辑的配置数据。流程图显示两个通用阶段,认证信息的构建和通过使用认证信息对有效载入的认证。认证信息的构建用括号102标记,而认证用括号104标记。
[0022]提供给系统的有效载入106具有附随公钥Pu108和会话密钥ID 110。有效载入可包括对应于会话密钥ID 110的会话密钥。有效载入被输入到散列函数112,散列函数112根据有效载入计算散列值114。在替换的实施方案中,公钥108和会话密钥ID 110均可被输入到散列函数中。在示例性实施方案中,散列函数可以是基于SHA的函数。散列值114由加密函数118用私钥Pr 116进行加密,从而形成签名120。签名120被添加到伴随有效载入106的信息中。在示例性应用中,有效载入106、公钥108、会话密钥ID 110和签名120可被格式化为在系统的安全引导中要使用的配置文件。
[0023]通过输入有效载入106和附随公钥108、会话密钥ID110、和签名120的系统可以执行有效载入的认证。该系统包括非易失性存储器132,用于存储公钥134和会话密钥ID 136的代表。在一个实施方案中,可以存储公钥的散列值,以便减低存储器要求。例如,应用于2048位的公钥的散列函数所得到的结果可以是256位。在另一个实施方案中,公钥可以不是散列的。非易失性存储器还包括用于对公钥的密钥状态的存储。每个公钥的密钥状态均可以用与该公钥相关联的有效比特138指示。公钥134、会话密钥ID 136和有效比特138例如可以被存储在电熔丝中。
[0024]在用非易失性存储器存储公钥的散列值的实施方案中,附随于输入的有效载入106的公钥108被输入至散列函数140,以生成散列值。比较函数144将散列值142与在非易失性存储器中的公钥134的散列值进行比较。响应于散列值不匹配于任何被散列化的公钥134,比较函数可以指明不可靠的有效载入,并且系统可以用锁定(lock down)函数146禁止有效载入106的进一步处理。例如,处理器可以通过中止系统的引导或中止配置可编程逻辑来锁定系统。这种指明可以是借助于被存储在寄存器或存储器中的信号或数值的状态。
[0025]在另一个实施方案中,会话密钥ID136和公钥34之一的每个组合可以是单个散列值。在这个实施方案中,附随于有效载入106的公钥108和会话密钥ID 110均被输入到散列函数140,并且比较函数144将最终得到的散列值与在非易失性存储器中的散列的公钥与会话密钥ID的组合的数值进行比较。
[0026]如果比较函数144发现数据匹配,则有效函数148确定与匹配的散列公钥(或替换地,匹配散列的公钥和会话密钥ID的组合,或者匹配非散列公钥)相关联的有效比特是否具有表明该密钥有效的密钥状态。如果该密钥状态表明匹配的密钥不是有效的,则有效函数148指明有效载入是不可靠的,并且系统用锁定函数150禁止进一步处理有效载入106,诸如通过中止系统的引导或中止配置可编程逻辑。
[0027]响应于具有表明密钥是有效的密钥状态的有效比特,可以通过将有效载入106输入到散列函数152(与散列函数112相同)并生成散列值154来确认有效载入106的签名。附随有效载入106的签名120和公钥108被输入到解密函数156,解密函数156使用公钥来解密签名,从而得到解密的签名158。比较函数160将计算的散列值与解密的签名进行比较。响应于签名无法匹配,系统用锁定函数162禁止有效载入106的进一步处理,诸如通过中止系统的引导或中止配置可编程逻辑。
[0028]响应于匹配于散列值的解密的签名,比较函数164将伴随有输入的有效载入的会话密钥ID 110与在非易失性存储器132中的会话密钥ID进行比较,其中非易失性存储器132中的会话密钥ID与散列公钥134中的一个匹配公钥相关联。响应于会话密钥ID 120不匹配于会话密钥ID 134中的某个会话密钥ID,比较函数164指明所述有效载入不是可靠的,并且系统用锁定功能模块166禁止有效载入106的进一步处理,诸如通过中止系统的引导或中止配置可编程逻辑。响应于会话密钥ID 120匹配于会话密钥ID 134中的某个会话密钥ID,比较函数164允许有效载入的处理,诸如通过继续执行系统的引导和/或可编程逻辑168的配置。在会话密钥ID 136中的一个会话密钥ID和公钥134中的一个公钥的每种组合均是单个散列值的实施方案中,不需要比较函数164,并且由比较函数160发现的肯定的比较结果后接处理函数168,诸如执行引导程序和/或配置可编程逻辑168。
[0029]会话密钥可以不依赖相关的公钥而被撤销。在示例的实施方案中,每个会话密钥ID 136均被存储在一组电熔丝中。为了撤销会话密钥,禁止电流流过该会话密钥ID的那个电熔丝。熔断的熔丝改变了会话密钥的数值,这有效地撤销被存储在该组电熔丝中的以前的会话密钥ID。从而在示例的实施方案中,以一元格式(unary format)存储会话密钥ID。
[0030]撤销公钥不仅仅撤销公钥,还实际撤销了相关联的会话密钥。如上所述,非易失性存储器132包括用于存储密钥状态的有效比特,其中密钥状态与公钥134和会话密钥ID 136的多个组合相关联。每个组合包括公钥中的一个和会话密钥ID中的一个。在有效比特中的与组合相关联的密钥状态表示相关联的组合是否为有效的(没有被撤销)。有效比特可被实施为电熔丝。
[0031]图2是显示了系统200的框图,在系统200中,使用认证密钥来控制系统的引导和/或配置。系统200包括处理器202、可编程逻辑204、R0M 206,RAM 208、非易失性存储器132、ROM 212、存储装置214、以及接口 216、218和220。处理器202、可编程逻辑204、R0M 206 ^RAM208、非易失性存储器132以及接口 216、218和220可以被实施为片上系统(SOC)。公钥134中的一个和会话密钥ID 136中的一个的组合被处理器用来认证第一级引导载入程序(FSBL)232和/或配置位流234。一旦被认证,处理器执行FSBL代码或者用配置位流配置可编程逻辑,从而使得能够撤销公钥和/或会话密钥ID中的一个。
[0032]在引导系统时,处理器202载入并执行来自ROM 206的程序代码。该代码使得处理器能够将FSBL 232和/或配置位流234输入到RAM 208中,并且然后认证FSBL或位流。被输入到处理器的FSBL和配置位流具有附随公钥、会话密钥ID和签名。如果处理器确定输入的FSBL或位流是可靠的,正如上文所描述的,则处理器可以通过处理有效载入而继续进行,所述的处理有效载入也就是通过执行FSBL的程序代码或用配置位流配置可编程逻辑204来实现。
[0033]在一个示例的实施方案中,非易失性存储器132包括电熔丝。通过熔断所选择的电熔丝来建立公钥的二进制值或公钥的散列值,可以建立公钥。通过熔断代表会话密钥ID的数值的一个或多个电熔丝,也可以建立与公钥相关联的会话密钥ID。通过熔断该会话密钥ID的多个电熔丝中的另一电熔丝,可以建立与关联的公钥组合使用的新的会话密钥。会话密钥ID由此以一元格式被体现在电熔丝中。例如,如果使用32个电熔丝来代表会话密钥ID,则会话密钥ID可以具有32个不同的数值。
[0034]与公钥和会话密钥ID的多个组合相关联的有效比特138,也可以用电熔丝来实施。当有效比特的电熔丝被熔断时,公钥被无效,并且因为与公钥相关联的会话密钥ID仅伴随该公钥而被使用,所以与该会话密钥ID相关联的会话密钥实际上也是无效的。只有在程序代码或配置位流被认证后,才可以通过在处理器202上执行的程序代码或通过在可编程逻辑204中配置的电路来熔断有效比特138和会话密钥ID 136的电熔丝。
[0035]在一个实施方案中,可写(WE)的电熔丝242控制除第一公钥之外的所有公钥。这使得运行未认证程序代码的处理器或者配置有配置位流的可编程逻辑能够编程第一公钥。不用认证就可以完成公钥空间的最开始的编程,这是因为在非易失性存储器132中没有用来认证的密钥。在第一公钥被配置后,只有在程序代码或配置位流被确认之后,才允许随后对密钥编程或撤销。
[0036]WE电熔丝242可以控制除了第一公钥以外的公钥。一旦公钥的所有期望的数值被编程好,就可以熔断WE位的电熔丝。在另一个实施方案中,个别WE位可被使用来个别地控制公钥的编程。
[0037]系统可以防止公钥的未授权的编程。在公钥初始编程阶段,授权方可以在电熔丝中配置用于所有公钥134的数值。然后可以熔断WE电熔丝242,从而禁止公钥的任何其它的配置。在替换的方法中,在公钥的初始编程阶段,授权方可以只配置没有被WE电熔丝保护的公钥(第一公钥)的数值。此后,在任何其它公钥可被配置或撤销之前,任何输入的程序代码或配置位流都必须首先用有效的公钥和会话密钥进行认证。
[0038]图3是用于初始地配置认证系统的过程的流程图。在步骤302,一个或多个公钥的代表被配置在非易失性存储器中。取决于实施方案的要求,每个公钥的代表可以是公钥的实际数值或公钥的散列值。
[0039]在一个实施方案中,所有的公钥均在初始设置时就被配置在非易失性存储器中。替换地,只配置第一公钥,随后,在程序代码或配置位流被认证的条件下,可以通过在SOC的处理器上运行的程序,或由在SOC的可编程逻辑中配置的电路,来配置其它公钥。
[0040]在步骤304,一个或多个会话密钥ID的数值可以选择性地被配置在非易失性存储器中。可以为在步骤302配置的每个公钥配置初始会话密钥ID。会话密钥ID的配置是可选的,因为用于会话密钥ID的初始值可以是0,它不需要熔断任何电熔丝。然而,如果想要不等于O的数值,则可以熔断电熔丝来表示该数值。
[0041]在步骤306,可以选择性地熔断控制公钥的WE电熔丝。在一些使用场景中在初始设置阶段就将所有公钥配置在SOC内,那么这种做法在这些使用场景中是有用的。熔断WE电熔丝禁止了公钥的随后更新。
[0042]图4是通过使用公钥和会话密钥ID认证输入有效载入的过程的流程图。在步骤402,该过程读出附随有效载入的输入公钥,以及在步骤404,根据公钥计算散列值。在实际的公钥被存储在非易失性存储器的实施方案中,不需要计算散列值。
[0043]如果计算的散列值不与被存储在非易失性存储器中的任何散列的公钥相匹配,那么判决步骤406将过程引导到步骤408,系统在步骤408处被锁定。例如,执行认证的处理器可能会中止系统的进一步引导或中止可编程逻辑的配置。
[0044]如果计算的散列值与被存储在非易失性存储器中的任何散列的公钥匹配,那么判决步骤406将处理过程引导到判决步骤410,判决步骤410根据相关联的有效比特的状态,检验匹配的散列公钥是否有效。如果散列公钥是无效的,那么系统将在步骤408被锁定。
[0045]如果散列公钥是有效的,则在步骤412,根据有效载入计算散列值,以及在步骤414,可以读出附随有效载入的签名,并且通过使用输入的公钥来解密该签名。
[0046]在步骤416,从输入读出会话密钥ID,以及判决步骤418确定输入的会话密钥ID是否与非易失性存储器中与匹配公钥相关联的会话密钥ID相匹配。如果输入的会话密钥ID不匹配,那么系统在步骤408被锁定。否则,判决步骤420确定解密的签名是否等于在步骤412处根据有效载入计算的散列值。如果解密的签名不匹配,那么系统在步骤422被锁定。否则,处理器可以在步骤424继续进行程序执行或可编程逻辑的配置。
[0047]在公钥和会话密钥ID被散列在一起(未示出)的实施方案中,可以根据输入的公钥和会话密钥ID来计算单个散列值,并且可以将该散列值与被存储在非易失性存储器中的公钥和会话密钥ID的散列值进行比较。因此,步骤402、404、和406可以被修正为:以与输入的公钥相结合的方式来处理输入的会话密钥ID。步骤416和418不一定是必须的。
[0048]图5是撤销公钥或会话密钥的过程的流程图。在SOC的实施方案中,只能通过在SOC的处理器上执行的认证的程序代码,或通过用认证的配置位流进行配置的SOC的可编程逻辑,来执行公钥或会话密钥的撤销。
[0049]在步骤502,认证输入的有效载入。有效载入例如可以是程序代码或配置位流,并且有效载入可以包括会话密钥。认证使用有效载入的签名,连同使用也与有效载入附随的公钥和会话密钥ID。
[0050]在步骤504,为了撤销公钥,可以熔断实施与公钥相关联的有效比特的电熔丝。由于每个会话密钥只与可能的公钥中的一个公钥一起使用,因此撤销公钥将有效地撤销销公钥和相关联的会话密钥的组合。
[0051]为了撤销会话密钥,在步骤506,熔断电熔丝组中的一个或多个电熔丝,其中这些电熔丝能够实施与撤销的会话密钥相关联的会话密钥ID。由于熔断电熔丝会改变会话密钥ID的数值,所以由该组电熔丝存储的以前的会话密钥ID被撤销,并且新的会话密钥ID会由该组电熔丝的状态表示。可以理解的是,只熔断一个电熔丝来撤销会话密钥ID,这使得可与该组电熔丝一起使用的会话密钥ID的数目最大化,因为一旦熔断一个电熔丝,则该电熔丝此后不能被重新配置用于传导电流。
[0052]图6是一种示例性的SOC架构600,可以使用这里描述的各种方法在架构600上实施系统。本领域技术人员可以领会,图6的SOC仅仅提供了可以在其上实施本发明的方法的集成电路器件的一个例子。S0C600包括大量不同的可编程单兀,其包括多千兆位收发器(MGT601)、可配置逻辑模块(CLB 602),随机存取存储器模块(BRAM 603),输入/输出模块(Ι0Β604)、配置逻辑和时钟逻辑(CONFIG/CLOCKS 605)、数字信号处理模块(DSP606)、专用输入/输出模块(I/O 607)407(例如,配置端口和时钟端口),以及其他可编程逻辑608,例如数字时钟管理器、模数转换器、系统监控逻辑等。示例性的SOC也包括硬连接的处理器610。
[0053]在一些【具体实施方式】中,每个可编程单元可以包括可编程互连元件(INT 611),INT611具有与相邻单元内的可编程互连元件之间的标准连接。因此,可编程互连元件合起来一起为展示的SOC执行可编程互连资源。可编程互连元件(INT 611)也可以包括与相同单元内的可编程逻辑元件的连接,如图6顶部包括的示例所示。
[0054]例如,CLB 602可以包括可配置逻辑元件(CLE 612),可配置逻辑元件612可以被编程以实现用户逻辑加上单个可编程互连元件(INT 611)。除了包括一个或多个可编程互连元件之外,BRAM 603可以包括BRAM逻辑元件(BRL 613)。通常地,单元内包括的互连元件的数量取决于单元的高度。在图示的实施例中,BRAM单元具有的高度和4个CLB相同,但是也可以使用其他的数量(例如,5个)。除了包括合理数量的可编程互连元件之外,DSP单元606可以包括DSP逻辑元件(DSPL 614)414。除了一个可编程互连元件611的实例之外,1B 604可以包括,例如,两个输入/输出逻辑元件(“10L”)615的实例。本领域的技术人员十分清楚,诸如被连接至I/O逻辑元件615的实际的I/O焊盘,通常不会被局限于输入/输出逻辑元件615的区域。
[0055]一些使用图6中展示的架构的SOC可以包括额外的逻辑模块,这些额外的逻辑模块会破坏组成了大部分可编程逻辑的规则柱状结构。额外的逻辑块可以是可编程模块和/或专用逻辑。例如,图6中显示的处理器模块PR0C610可以跨越CLB和BRAM的多个栏。
[0056]在图示的示例中,靠近晶粒(图6阴影所示)中部的柱状区域被用作配置逻辑、时钟逻辑以及其他控制逻辑。从该柱状区域伸出来的水平区域609被用于横跨SOC的宽度来分配时钟信号和配置信号。可以使用配置端口(未显示)来接入用于可编程逻辑的配置存储器(未显示),以用于配置可编程逻辑和互连资源。在某一实施例中,内部擦除设备(未显示)可以通过内部配置接入端口持续读出并修正配置存储器。
[0057]需要注意的是,图6仅意图示出示例性的SOC架构。例如,一行中逻辑模块的数量、行的相对宽度、行的数量和顺序、行中包括的逻辑模块的类型、逻辑模块的相对大小以及图6的顶部包括的互连/逻辑实现方式都仅仅是示例性的。例如,在实际的SOC中,无论CLB出现在哪里,都通常包括不止一个相邻行的CLB,以便于用户逻辑的有效实现。
[0058]虽然这些方面和特性在某些情形下是以具体的图描述的,但将会看到,来自一个图的特性可以与另一个图的特性组合,即使该组合没有作为组合被明显地显示或明显地描述。
[0059]某些例子为如下。然而,本领域技术人员应当看到,一个或多个其它例子和/或这些例子的变例可以不用下面给出的所有的具体细节而被实践。
[0060]这里描述的示例性方法大体涉及数据认证。该方法可以包括:将公钥和会话密钥ID的代表的多个组合存储在非易失性存储器中;输入有效载入以及附随公钥、会话密钥ID和所述有效载入的签名,其中所述签名是所述有效载入和一密钥对中的私钥的函数,其中所述密钥对包括所述附随公钥和私钥;根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合,并且根据所述签名和所述有效载入,用处理器确定所述有效载入是否可靠;响应于确定所述有效载入是可靠的,处理所述有效载入;以及响应于确定所述有效载入不是可靠的,禁止处理所述有效载入。
[0061]—些这样的方法还可以包括:其中将公钥和会话密钥ID的代表的多个组合存储的步骤包括:将每个会话密钥ID的代表存储在多个电熔丝中;通过禁止电流流过所述多个组合中的一个组合的会话密钥ID的代表的多个电熔丝中的一个电熔丝,建立新的会话密钥。
[0062]一些这样的方法还可包括:分别存储与公钥和会话密钥ID的代表的所述多个组合相关联的多个密钥状态,其中每个密钥状态均表明相关联的组合是否有效;其中根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定所述有效载入是否可靠的步骤,包括:确定所述多个组合中的一个组合是否具有与所述附随公钥相匹配的公钥的代表,并且根据与所述组合相关联的所述密钥状态确定所述组合是否有效;以及响应于确定所述多个组合中的一个组合具有与所述附随公钥相匹配的一个公钥的代表以及所述组合不是有效的,指明所述有效载入不是可靠的。
[0063]一些这样的方法还可包括:存储与公钥和会话密钥ID的代表的所述多个组合相关联的所述多个密钥状态的步骤,包括:将每个密钥状态存储在一个或多个电熔丝中。
[0064]一些这样的方法还可包括:其中,将公钥和会话密钥ID的代表的所述多个组合存储的步骤包括:将每个会话密钥ID的代表存储在多个电熔丝中;通过禁止电流流过所述多个组合中的一个组合的会话密钥ID的代表的多个电熔丝中的一个电熔丝,建立新的会话密钥。
[0065]一些这样的方法还可包括:公钥和会话密钥ID的代表的所述多个组合中的每个公钥的代表,均是公钥的散列值;根据所述附随公钥和会话密钥ID及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠的步骤,包括:计算所述附随公钥的散列值;确定所述附随公钥的散列值是否匹配于所述多个组合中一个组合的公钥的代表;以及响应于确定所述附随公钥的散列值不匹配于所述多个组合中一个公钥的代表,指明所述有效载入不是可靠的。。
[0066]一些这样的方法还可包括:根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠的步骤,包括:针对公钥和会话密钥ID的代表的所述多个组合中的一个组合,其中所述组合具有与所述附随公钥的散列值相匹配的公钥的代表,确定附随会话密钥ID号码是否匹配于所述组合的会话密钥ID号码的代表;响应于确定所述附随会话密钥ID号码匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入是可靠的;以及响应于确定所述附随会话密钥ID号码不匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入不是可靠的。
[0067]一些这样的方法还可包括:将公钥和会话密钥ID的代表的所述多个组合存储的步骤包括:将每个会话密钥ID的代表存储在多个电熔丝中。
[0068]一些这样的方法还可包括:分别存储与公钥和会话密钥ID的代表的所述多个组合相关联的多个密钥状态,其中每个密钥状态均表明所述相关联的组合是否有效;其中根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定所述有效载入是否可靠的步骤,包括:确定所述多个组合中的一个组合是否具有与所述附随公钥相匹配的公钥的代表,并且根据与所述多个组合相关联的所述密钥状态确定所述组合是否有效;以及响应于确定所述多个组合中的一个组合具有与所述附随公钥相匹配的一个公钥的代表以及所述组合不是有效的,指明所述有效载入不是可靠的。
[0069]一些这样的方法还可包括:将公钥和会话密钥ID的代表的所述多个组合存储的步骤包括:将每个密钥状态存储在一个或多个电熔丝中。
[0070]一些这样的方法还可包括:其中将公钥和会话密钥ID的代表的所述多个组合存储的步骤包括:将每个会话密钥ID的所述代表存储在多个电熔丝中;通过禁止电流流过所述多个组合中的一个组合的所述会话密钥ID的代表的所述多个电熔丝中的一个电熔丝,建立新的会话密钥。
[0071]—些这样的方法还可包括:在所述非易失性存储器中的公钥和会话密钥ID的代表的所述多个组合中的每个组合,均是公钥和会话密钥ID的散列值;根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠的步骤,包括:计算所述附随公钥和会话密钥ID的第一散列值;确定所述第一散列值是否匹配于在所述非易失性存储器中的所述散列值中的任一散列值;以及响应于确定所述第一散列值不匹配于在所述非易失性存储器中所述散列值的任一散列值,指明所述有效载入不是可靠的。
[0072]这里描述的示例性设备大体涉及到认证系统。所述设备可包括:非易失性存储器,其可被配置为存储公钥和会话密钥ID的代表的多个组合;被耦接到所述非易失性存储器的处理器,所述处理器被配置成:输入有效载入以及附随公钥、会话密钥ID和所述有效载入的签名,其中所述签名是所述有效载入和一密钥对中的私钥的函数,其中所述密钥对包括所述附随公钥和私钥;根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合,并且根据所述签名和所述有效载入,确定所述有效载入是否可靠;响应于确定所述有效载入是可靠的,处理所述有效载入;以及响应于确定所述有效载入不是可靠的,禁止处理所述有效载入。
[0073]—些这样的设备还可包括:所述非易失性存储器包括:多个电熔丝,其用于存储公钥和会话密钥ID的代表的多个组合;以及所述处理器还被配置成:通过禁止电流流过所述多个组合中的一个组合的会话密钥ID的代表的多个电熔丝中的一个电熔丝,建立新的会话密钥。
[0074]一些这样的设备还可包括:所述非易失性存储器包括:分别用于存储与公钥和会话密钥ID的代表的所述多个组合相关联的多个密钥状态的存储器,其中每个密钥状态均表明相关联的组合是否有效;以及所述处理器还被配置成:确定所述多个组合中的一个组合是否具有与所述附随公钥相匹配的公钥的代表,并且根据与所述组合相关联的所述密钥状态确定所述组合是否有效;以及响应于确定所述多个组合中的一个组合具有与所述附随公钥相匹配的公钥的代表以及所述组合不是有效的,指明所述有效载入不是可靠的。
[0075]—些这样的设备还可包括:所述非易失性存储器包括:多个电熔丝,其用于存储所述多个密钥状态。
[0076]—些这样的设备还可包括:所述非易失性存储器包括:多个电熔丝,其用于存储所述会话密钥ID的代表;以及所述处理器还被配置成:通过禁止电流流过所述多个组合中的一个组合的所述会话密钥ID的代表的所述多个电熔丝中的一个电熔丝,建立新的会话密钥。
[0077]一些这样的设备还可包括:公钥和会话密钥ID的代表的所述多个组合中的每个公钥的代表,均是公钥的散列值;当处理器根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定所述有效载入是否可靠时,其被配置成:计算所述附随公钥的散列值;确定所述附随公钥的散列值是否匹配于所述多个组合中的一个组合的公钥的代表;以及响应于所述确定附随公钥的散列值不匹配于所述多个组合的公钥的代表,指明所述有效载入不是可靠的。
[0078]一些这样的设备还可包括:当所述处理器根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠时,其被配置成:针对公钥和会话密钥ID的代表的所述多个组合中的一个组合,其中所述组合具有与附随公钥的散列值相匹配的公钥的代表,确定附随会话密钥ID号码是否匹配于所述组合的会话密钥ID号码的代表;响应于确定所述附随会话密钥ID号码匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入是可靠的;以及响应于确定所述附随会话密钥ID号码不匹配于所述某一组合的会话密钥ID号码的代表,指明所述有效载入不是可靠的。
[0079]一些这样的设备还可包括:在所述非易失性存储器中的公钥和会话密钥ID的代表的所述多个组合中的每个组合,均是公钥和会话密钥ID的散列值;当处理器根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠时,其被配置成:计算所述附随公钥和会话密钥ID的第一散列值;确定所述第一散列值是否匹配于在所述非易失性存储器中的所述散列值中的任一散列值;以及响应于确定所述第一散列值不匹配于在所述非易失性存储器中所述散列值的任一散列值,指明所述有效载入不是可靠的。
[0080]这种系统和方法可应用于各种各样的用于认证的系统。本领域技术人员通过参考说明书将明白其它方面和特性。这种系统和方法可被实施成:作为被配置成执行软件的一个或多个处理器;作为专用集成电路(ASIC);或作为在可编程逻辑设备上的逻辑。说明书和附图仅仅意图被看作为示例,而本发明的实际范围由权利要求表明。
【主权项】
1.一种认证数据的方法,包括: 将公钥和会话密钥ID的代表的多个组合存储在非易失性存储器中; 输入有效载入以及附随公钥、会话密钥ID和所述有效载入的签名,其中所述签名是所述有效载入和一密钥对中的私钥的函数,所述密钥对包括所述附随公钥和所述私钥; 根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合,并且根据所述签名和所述有效载入,用处理器确定所述有效载入是否可靠; 响应于确定所述有效载入是可靠的,处理所述有效载入;以及 响应于确定所述有效载入不是可靠的,禁止处理所述有效载入。2.根据权利要求1所述的方法,其特征在于,还包括: 其中将公钥和会话密钥ID的代表的多个组合存储的步骤包括:将每个会话密钥ID的代表存储在多个电熔丝中; 通过禁止电流流过所述多个组合中一个组合的会话密钥ID的代表的多个电熔丝中的一个电熔丝,建立新的会话密钥。3.根据权利要求1所述的方法,其特征在于,还包括: 分别存储与公钥和会话密钥ID的代表的所述多个组合相关联的多个密钥状态,其中每个密钥状态均表明相关联的组合是否有效; 其中根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定所述有效载入是否可靠的步骤,包括: 确定所述多个组合中的一个组合是否具有与所述附随公钥相匹配的公钥的代表,并且根据与所述组合相关联的所述密钥状态确定所述组合是否有效;以及 响应于确定所述多个组合中的一个组合具有与所述附随公钥相匹配的一个公钥的代表以及所述组合不是有效的,指明所述有效载入不是可靠的。4.根据权利要求3所述的方法,其特征在于,存储与公钥和会话密钥ID的代表的所述多个组合相关联的所述多个密钥状态的步骤,包括:将每个密钥状态存储在一个或多个电熔丝中。5.根据权利要求1所述的方法,其特征在于,其中: 公钥和会话密钥ID的代表的所述多个组合中的每个公钥的代表,均是公钥的散列值; 根据所述附随公钥和会话密钥ID及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠的步骤,包括: 计算所述附随公钥的散列值; 确定所述附随公钥的散列值是否匹配于所述多个组合中的一个组合的公钥的代表;以及 响应于确定所述附随公钥的散列值不匹配于所述多个组合中的一个公钥的代表,指明所述有效载入不是可靠的。6.根据权利要求5所述的方法,其特征在于,根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠的步骤,包括: 针对公钥和会话密钥ID的代表的所述多个组合中的一个组合,其中所述组合具有与所述附随公钥的散列值相匹配的公钥的代表,确定附随会话密钥ID号码是否匹配于所述组合的会话密钥ID号码的代表; 响应于确定所述附随会话密钥ID号码匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入是可靠的;以及 响应于确定所述附随会话密钥ID号码不匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入不是可靠的。7.根据权利要求5所述的方法,其特征在于,还包括: 分别存储与公钥和会话密钥ID的代表的所述多个组合相关联的多个密钥状态,其中每个密钥状态均表明所述相关联的组合是否有效; 其中根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定所述有效载入是否可靠的步骤,包括: 确定所述多个组合中的一个组合是否具有与所述附随公钥相匹配的公钥的代表,并且根据与所述组合相关联的所述密钥状态确定所述组合是否有效;以及 响应于确定所述多个组合中的一个组合具有与所述附随公钥相匹配的一个公钥的代表以及所述组合不是有效的,指明所述有效载入不是可靠的; 其中将公钥和会话密钥ID的代表的所述多个组合存储的步骤包括:将每个会话密钥ID的所述代表存储在多个电熔丝中;以及 通过禁止电流流过所述多个组合中一个组合的所述会话密钥ID的代表的所述多个电熔丝中的一个电熔丝,建立新的会话密钥。8.一种认证系统,包括: 非易失性存储器,其可被配置为存储公钥和会话密钥ID的代表的多个组合; 被耦接到所述非易失性存储器的处理器,所述处理器被配置成: 输入有效载入以及附随公钥、会话密钥ID和所述有效载入的签名,其中所述签名是所述有效载入和一密钥对中的私钥的函数,所述密钥对包括所述附随公钥和所述私钥; 根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合,并且根据所述签名和所述有效载入,确定所述有效载入是否可靠; 响应于确定所述有效载入是可靠的,处理所述有效载入;以及 响应于确定所述有效载入不是可靠的,禁止处理所述有效载入。9.根据权利要求8所述的系统,其特征在于: 所述非易失性存储器包括:多个电熔丝,其用于存储公钥和会话密钥ID的代表的多个组合;以及 所述处理器还被配置成:通过禁止电流流过所述多个组合中一个组合的会话密钥ID的代表的所述多个电熔丝中的一个电熔丝,建立新的会话密钥。10.根据权利要求8所述的系统,其特征在于: 所述非易失性存储器包括:分别用于存储与公钥和会话密钥ID的代表的所述多个组合相关联的多个密钥状态的存储器,其中每个密钥状态均表明相关联的组合是否有效;以及所述处理器还被配置成: 确定所述多个组合中的一个组合是否具有与所述附随公钥相匹配的公钥的代表,并且根据与所述组合相关联的所述密钥状态确定所述组合是否有效;以及 响应于确定所述多个组合中的一个组合具有与所述附随公钥相匹配的一个公钥的代表以及所述组合不是有效的,指明所述有效载入不是可靠的。11.根据权利要求10所述的系统,其特征在于,所述非易失性存储器包括:多个电熔丝,其用于存储所述多个密钥状态。12.根据权利要求11所述的系统,其特征在于: 所述非易失性存储器包括:多个电熔丝,其用于存储所述会话密钥ID的代表;以及所述处理器还被配置成:通过禁止电流流过所述多个组合中一个组合的会话密钥ID的代表的所述多个电熔丝中的一个电熔丝,建立新的会话密钥。13.根据权利要求10所述的系统,其特征在于: 公钥和会话密钥ID的代表的所述多个组合中的每个公钥的代表,均是公钥的散列值;当处理器根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定所述有效载入是否可靠时,其被配置成: 计算所述附随公钥的散列值; 确定所述附随公钥的散列值是否匹配于所述多个组合中的一个组合的公钥的代表;以及 响应于确定所述附随公钥的散列值不匹配于所述多个组合的一个公钥的代表,指明所述有效载入不是可靠的。14.根据权利要求13所述的系统,其特征在于,当所述处理器根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠时,其被配置成: 针对公钥和会话密钥ID的代表的所述多个组合中的一个组合,其中所述组合具有与所述附随公钥的散列值相匹配的公钥的代表,确定附随会话密钥ID号码是否匹配于所述组合的会话密钥ID号码的代表; 响应于确定所述附随会话密钥ID号码匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入是可靠的;以及 响应于确定所述附随会话密钥ID号码不匹配于所述组合的会话密钥ID号码的代表,指明所述有效载入不是可靠的。15.根据权利要求10所述的系统,其特征在于: 在所述非易失性存储器中的公钥和会话密钥ID的代表的所述多个组合中的每个组合,均是公钥和会话密钥ID的散列值; 当所述处理器根据所述附随公钥和会话密钥ID以及被存储在所述非易失性存储器中的多个组合来确定有效载入是否可靠时,其被配置成: 计算所述附随公钥和会话密钥ID的第一散列值; 确定所述第一散列值是否匹配于在所述非易失性存储器中的散列值中的任一散列值;以及 响应于确定所述第一散列值不匹配于在所述非易失性存储器中散列值的任一散列值,指明所述有效载入不是可靠的。
【文档编号】G06F21/57GK106031082SQ201580009686
【公开日】2016年10月12日
【申请日】2015年2月18日
【发明人】J·J·摩尔, S·E·麦克尼尔, S·M·特里姆伯格
【申请人】赛灵思公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1