CN105007157A - 基于设备生成的密钥来生成和管理多个基密钥 - Google Patents
基于设备生成的密钥来生成和管理多个基密钥 Download PDFInfo
- Publication number
- CN105007157A CN105007157A CN201510194516.9A CN201510194516A CN105007157A CN 105007157 A CN105007157 A CN 105007157A CN 201510194516 A CN201510194516 A CN 201510194516A CN 105007157 A CN105007157 A CN 105007157A
- Authority
- CN
- China
- Prior art keywords
- key
- memory
- equipment
- instance
- otp memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
Abstract
本公开涉及基于设备生成的密钥来生成和管理多个基密钥。可以接收用以生成第一密钥的请求。响应于请求,可以接收存储在存储器中的设备生成的密钥。此外,可以接收存储在存储器中的第一实体标识(ID)。可以基于存储在存储器中的第一实体ID和设备生成的密钥来生成第一密钥。
Description
技术领域
本公开涉及从设备生成的密钥来推导密钥,更具体地涉及基于设备生成的密钥来生成和管理多个基密钥。
发明内容
本发明提供了一种方法,包括:接收用以生成第一密钥的请求;接收被存储在存储器中的设备生成的密钥;接收被存储在存储器中的第一实体标识(ID);以及基于被存储在存储器中的第一实体ID和设备生成的密钥来生成第一密钥。
本发明还提供了一种系统,包括:存储器,存储器用于存储设备生成的密钥和第一实体标识(ID);以及密钥推导器,密钥推导器与存储器耦合并且用于:接收用以生成第一推导的密钥的请求;响应于用以生成第一推导的密钥的请求,从存储器接收设备生成的密钥和第一实体ID;以及基于来自存储器的第一实体ID和设备生成的密钥来生成第一推导的密钥。
本发明还提供了一种装置,包括:一次性可编程(OTP)存储器,用于存储设备生成的密钥和第一实体标识(ID);以及单向函数部件,单向函数部件被耦合到OTP存储器并且用于:接收用以生成第一推导的基密钥的请求;接收被存储在OTP存储器中的设备生成的密钥;接收被存储在存储器中的第一实体ID;以及基于被存储在OTP存储器中的第一实体ID和设备生成的密钥来生成第一推导的基密钥。
本发明的优点在于,允许用于存储任何密钥的较少OTP存储器并且不需要用于对附加基密钥进行编程以存储到OTP存储器中的制造时间,同时实现用于生成多个推导的基密钥的函数。本发明的优点还在于,使用推导的基密钥的实体中的每个实体可以确信其推导的基密钥的安全性和私密性。
附图说明
从下面给出的详细描述和从本公开的各种实施方式的附图,将更加完全地理解本公开。
图1A图示依照本公开的一些实施例的包括密钥推导器的集成电路的示例生命周期。
图1B图示依照一些实施例的用于基于设备生成的密钥和实体标识(ID)来生成推导的基密钥的示例环境。
图2是依照本公开的一些实施例的示例密钥推导器的框图。
图3是依照一些实施例的用于生成推导的基密钥的示例方法的流程图。
图4是依照本公开的一些实施例的密钥推导器的示例架构。
图5A是依照一些实施例的用于存储设备生成的密钥的示例方法的流程图。
图5B是依照一些实施例的用于基于实体ID和设备生成的密钥来生成推导的基密钥的示例方法的流程图。
图6A是依照一些实施例的示例一次性可编程(OTP)存储器的框图。
图6B是依照一些实施例的具有更新的实体ID的示例OTP存储器的框图。
图7A是依照一些实施例的用于从设备生成的密钥和计数器的值生成推导的基密钥的示例方法的流程图。
图7B是依照一些实施例的用于基于设备生成的密钥和匹配的实体ID来生成推导的基密钥的示例方法的流程图。
图8是依照本公开的一些实施例的示例密钥树的框图。
图9图示本公开的一些实施例可以操作在其中的计算机系统的实施例的框图。
具体实施方式
本公开的方面涉及从设备生成的密钥来推导密钥。在一些实施例中,可以基于另一密钥和附加标识(ID)信息的组合来推导或生成密钥。例如,可以基于设备生成的密钥和实体ID信息的组合来生成推导的基密钥。设备生成的密钥可以是由电路生成的并且被存储在与由一个或多个设备使用的电路关联的存储器中的密钥。
基密钥可以被存储在一次性可编程(OTP)存储器中。一般而言,OTP存储器可以是一种类型的数字存储器,其中OTP存储器的每个比特的设置可以认为是永久性的。OTP存储器可能比其它类型的存储器(例如,不涉及比特的永久性设置的存储器)更昂贵并且容量更小。据此,使用OTP存储器的设备可能被限于可以用于存储密钥的存储器容量。此外,用于存储基密钥的OTP的编程可能在OTP存储器的制造期间花费时间。可能要求与OTP存储器关联的电路的制造商为可以在不同时间利用电路的不同实体提供不同的基密钥。例如,可以在制造设施处制造电路,并且存储器可以用于存储用于第一实体(例如电路的制造商)的第一基密钥。用于第一实体的第一基密钥可以用于基于第一基密钥的使用而提供特定认证服务或特定操作(例如,基于数字权限管理而认证以播放视频)。第二实体(例如,并入电路的设备的另一制造商)可以随后在设备中利用电路和关联的存储器。例如,第二实体可以在另一设备中并入电路和存储器,并且可以进一步需要用于基于第二密钥的使用而提供特定认证服务或另一操作的第二基密钥。因而,可能要求制造电路和关联的OTP存储器的第一实体花费附加的制造时间来对OTP存储器进行编程以包括将由第一实体使用的第一基密钥和将由第二实体使用的第二基密钥。
代替在OTP存储器中存储第一基密钥和第二基密钥的单独副本,可以代之以在OTP存储器中存储单个设备生成的密钥。设备生成的密钥不需要由任何实体来提供(例如,不是由制造与OTP存储器关联的电路的第一实体或者制造设备的第二实体来提供),而是代之以可以由电路或并入电路的设备随机地生成并且随后存储在OTP存储器中。此外,OTP存储器可以存储其大小可以小于密钥的附加信息。可以从其可以存储在OTP存储器中的附加信息和设备生成的密钥的组合生成第一基密钥和第二基密钥。例如,可以从存储在OTP存储器中的设备生成的密钥和存储在OTP存储器中的第一附加信息推导第一基密钥,并且可以从存储在OTP存储器中的相同的设备生成的密钥和存储在OTP存储器中的第二附加信息推导第二基密钥。从设备生成的密钥推导的基密钥可以称为推导的基密钥,并且存储在OTP存储器中的并且用于生成推导的基密钥的密钥可以称为设备生成的密钥。存储在OTP存储器中的第一和第二附加信息可以对应于实体标识(ID)信息。例如,第一附加信息可以称为第一实体ID,并且第二附加信息可以称为第二实体ID。在一些实施例中,实体ID可以对应于与请求推导的基密钥的生成的实体关联的标识。据此,可以基于设备生成的密钥和第一实体ID的组合来生成第一基密钥,并且可以基于相同的设备生成的密钥但不同(例如,第二)的实体ID的组合来生成第二基密钥。因而,可以从存储在OTP存储器中的单个设备生成的密钥推导多个基密钥,由此允许用于存储任何密钥的较少OTP存储器并且不需要用于对附加基密钥进行编程以存储到OTP存储器中的制造时间,同时实现用于生成多个推导的基密钥的函数(function)。此外,由于设备生成的密钥是由电路随机生成的并且不是由制造与OTP存储器关联的电路的第一实体提供的,所以请求第二推导的基密钥的第二实体可以确信第二推导密钥是安全和私密的,因为没有其它实体知道可以用于生成第二推导的基密钥的设备生成的密钥的确切内容。相似地,为其自身生成基密钥的任何实体(例如,原始设备制造商(OEM)或者原始设计制造商(ODM)或者服务提供商等)可以确信无疑没有其他人对其基密钥有任何了解(甚至电路制造商也不了解)。
在一些实施例中,实体ID可以对应于计数器的值。例如,OTP存储器可以存储设备生成的密钥以及与计数器的值对应的多个比特。作为示例,计数器可以是包括比特‘00000000’的8位计数器。当设备生成的密钥被存储到OTP存储器中时,计数器可以递增为值‘00000001’。随后,可以请求推导的基密钥,并且可以基于设备生成的密钥和当前设置在‘00000001’的计数器的值来生成推导的基密钥。在第二次,不同的实体可以使用与OTP存储器关联的电路,并且可以力求生成不同的推导的基密钥。据此,计数器的值可以递增为值‘00000011’(由于计数器被存储在OTP存储器中),并且可以基于相同的设备生成的密钥但是利用递增计数器的值之后的计数器的新值(例如,‘00000011’代替‘00000001’)来生成新推导的基密钥。因而,在这样的实施例中,OTP存储器可以存储设备生成的密钥和与计数器对应的值。
正因如此,基于相同的设备生成的密钥和不同实体ID信息生成不同的推导的基密钥可以导致使用较少的OTP存储器,同时允许用于生成多个推导的基密钥的函数。
图1A图示包括密钥推导器的集成电路的示例生命周期190。一般而言,生命周期190图示了贯穿涉及不同实体的生命周期190的各种阶段的对包括密钥推导器111的集成电路的处置。在一些实施例中,集成电路的密钥推导器111可以生成推导的基密钥。
如图1所示,生命周期190可以涉及在不同时期利用集成电路的各种实体。例如,第一实体191可以是制造或制作包括密钥推导器111的集成电路的制造实体。在一些实施例中,密钥推导器111可以包括存储器(例如OTP存储器),并且密钥推导器111可以生成设备生成的密钥并且可以将设备生成的密钥存储在存储器中。据此,第一实体191不提供将被存储在存储器中的设备生成的密钥。代之,密钥推导器111自身生成设备生成的密钥并且将设备生成的密钥存储在存储器中。因而,第一实体191不了解设备生成的密钥的内容。
生命周期190可以包括第二实体192。例如,第二实体192可以是将集成电路包括或并入到电子设备中的设备制造商。第二实体可以要求密钥推导器111生成用于第二实体的推导的基密钥。例如,密钥推导器111可以用于通过使用设备生成的密钥来生成用于第二实体的推导的基密钥,设备生成的密钥由密钥推导器111自身存储在存储器中。据此,第二实体192可以确信没有其他实体(例如第一实体191)了解可以用于生成由第二实体使用的推导的基密钥的设备生成的密钥。因而,第二实体可以确信他使用的推导的基密钥是安全和私密的。
此外,第三实体193可以与包括集成电路的电子设备交互。例如,集成电路可以是并入到蜂窝电话或其它这样的移动设备中的通信电路,并且第三实体193可以是一种类型的针对由蜂窝电话使用的通信服务的服务提供商。第三实体193可以进一步使用密钥推导器111生成用于由第三实体193使用的附加推导的基密钥。由于用于第三实体193的附加推导的基密钥也是基于设备生成的密钥生成的,因此第三实体193也可以确信,附加推导的基密钥针对任何其他实体(例如,第一实体191和第二实体192)也是安全和私密的。
据此,随着包括密钥推导器111的集成电路在生命周期190中前进,密钥推导器111可以用于为不同实体的推导单独的基密钥。密钥推导器111可以基于非由任何其它实体提供的设备生成的密钥来推导单独的基密钥。因而,由于没有实体知道设备生成的密钥的内容,因此使用推导的基密钥的实体中的每个实体可以确信其推导的基密钥的安全性和私密性(例如,没有实体能够因了解设备生成的密钥而创建推导的基密钥的未授权副本)。
图1B图示用于从设备生成的密钥和实体标识(ID)信息生成推导的基密钥的示例环境100。一般而言,示例环境100图示存储在OTP存储器中的并且用于生成或推导第二密钥(例如推导的基密钥)的第一密钥(例如设备生成的密钥)和标识信息(例如实体ID)的使用。
如图1B所示,示例环境100图示可以用于由设备110生成一个或多个推导的基密钥的设备生成的密钥和实体ID 130。在一些实施例中,设备110可以包括密钥推导器111、一次性可编程(OTP)存储器112、以及各种设备部件113。密钥推导器111可以接收用以生成设备生成的密钥并且用以将设备生成的密钥存储在OTP存储器112中的请求,并且还可以接收将被存储在OTP存储器112中的实体ID 130。此外,在设备生成的密钥已经被存储或储备在OTP存储器112中之后,密钥推导器111可以接收设备生成的密钥。此外,密钥推导器111可以接收实体ID 130以更新存储在OTP存储器112中的实体ID信息。据此,密钥推导器可以基于设备生成的密钥和存储在OTP存储器112中的实体ID来生成推导的基密钥。设备部件113可以从密钥推导器111接收推导的基密钥。密钥推导器111可以被实现在包括在设备110中的集成电路中。下面关于图2至图8进一步详细描述关于设备110的密钥推导器111的架构、设备生成的密钥的生成、以及推导的基密钥的生成的进一步细节。
图2是示例密钥推导器200的框图。一般而言,密钥推导器200可以对应于图1A和图1B的密钥推导器111。密钥推导器111可以在设备中用于基于设备生成的密钥和实体ID的组合来生成推导的基密钥。
如图2所示,密钥推导器200可以接收初始化请求235、新实体请求230或密钥请求240。在一些实施例中,初始化请求235可以导致密钥推导器200创建设备生成的密钥并且将设备生成的密钥存储在OTP存储器中。例如,密钥推导器200可以一次性随机地生成设备生成的密钥,并且可以基于包括密钥推导器200的电路的条件来生成设备生成的密钥。在一些实施例中,密钥推导器200可以响应于仅第一初始化请求235而仅一次性地创建或存储设备生成的密钥。在一些实施例中,密钥请求240可以导致基于存储在OTP存储器(例如OTP存储器112)中的设备生成的密钥和实体ID来生成推导的基密钥。响应于接收到密钥请求240,密钥推导器200可以从OTP存储器接收设备生成的密钥210和实体ID 220。响应于密钥请求240,密钥推导器200可以进一步基于接收的设备生成的密钥210和实体ID 220来生成或创建推导的基密钥250。因而,每当接收到密钥请求240时,可以从设备生成的密钥210和实体ID 220生成推导的基密钥250。
在相同或备选实施例中,OTP存储器可以是实现在设备的电路装置或硅中的一种类型的数字存储器,其可以被编程并且在被编程之后不能被改变。例如,设备生成的密钥可以被编程到设备的OTP存储器中,并且在设备生成的密钥在将设备生成的密钥编程到OTP存储器中之后不可以在OTP存储器中被改变。此外,实体ID可以被编程到OTP存储器中,并且实体ID信息可以响应于实体ID修改符260而被更新。例如,如下面进一步详细描述的,实体ID信息可以包括实体ID的列表。在这样的示例中,实体ID修改符260可以通过向存储在OTP存储器中的实体ID信息添加新实体ID而更新实体ID信息。在备选实施例中,实体ID信息可以对应于计数器的比特,并且实体ID修改符260可以导致计数器的值的改变。下面进一步详细描述关于实体ID的进一步细节。
因而,当已经接收到密钥请求时,密钥推导器200可以生成其基于设备生成的密钥和实体ID的推导的基密钥。此外,响应于标识新实体的请求,密钥推导器200可以修改存储在OTP存储器中的实体ID信息。在一些实施例中,响应于与新实体ID关联的后续密钥请求,密钥推导器200可以基于相同的设备生成的密钥和标识新实体的更新的实体ID信息来生成新推导的基密钥。
图3是用于生成推导的基密钥的示例方法300的流程图。一般而言,方法300可以由处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)、或其组合。在一些实施例中,方法300可以由图2的密钥推导器200或者图1A和图1B的密钥推导器111来执行。
如图3所示,方法300可以开始于处理逻辑接收设备生成的密钥(块310)和接收实体ID信息(块320)。例如,单向函数(例如,执行基于散列的函数的部件)可以从OTP存储器接收设备生成的密钥和实体ID信息。在一些实施例中,设备生成的密钥可以存储在OTP存储器的第一位置,并且实体ID信息可以存储在OTP存储器的第二位置。此外,可以接收存储在OTP存储器的第二位置的实体ID信息的一部分(例如,来自实体ID的列表的特定实体ID),或者可以接收存储在OTP存储器的第二位置的整个实体ID信息(例如,与实体ID信息对应的计数器的值)。在一些实施例中,设备生成的密钥可以视为机密信息(例如,请求推导的基密钥的实体可以不知道设备生成的密钥的内容),并且实体ID可以视为公开信息或机密信息。例如,实体ID可以对应于计数器的值,或者当实体ID信息被更新为包括新实体ID时,实体ID信息可以不与其他实体共享。处理逻辑可以进一步从设备生成的密钥和实体ID信息生成推导的基密钥(块330)。例如,单向函数可以基于设备生成的密钥和实体ID信息生成推导的基密钥。在一些实施例中,单向函数可以是密钥树部件,如关于图4和图8进一步详细描述的。
图4是密钥推导器420和OTP存储器410的示例架构400。一般而言,密钥推导器420可以对应于图1A和图1B的密钥推导器111以及图2的密钥推导器200。密钥推导器420可以接收设备生成的密钥(例如,设备生成的密钥120或设备生成的密钥210)和实体标识信息(例如,实体ID 130或实体ID 220),并且基于设备生成的密钥和实体ID信息生成推导的基密钥(例如,推导的基密钥250)。架构400可以进一步包括OTP存储器410,OTP存储器410可以对应于图1B的OTP存储器112。虽然架构400图示密钥推导器420和分离的OTP存储器410,但是在一些实施例中,密钥推导器420和OTP存储器410可以对应于单个部件。
如图4所示,架构400可以包括OTP存储器410和密钥推导器420。在一些实施例中,OTP存储器410和密钥推导器420可以是设备的一部分。例如,OTP存储器410和密钥推导器420可以实现在设备的电路装置中。此外,OTP存储器410可以存储可以用于生成或创建推导的基密钥442的设备生成的密钥411和实体ID信息412。密钥推导器420可以接收初始化请求431和新实体ID请求432。例如,OTP修改器部件430可以接收初始化请求431,并且可以随机地生成设备生成的密钥,并且可以将随机设备生成的密钥存储到OTP存储器410中(例如,作为设备生成的密钥411)。在一些实施例中,设备生成的密钥411仅可以一次性随机生成并且存储到OTP存储器410中(例如,在制造OTP存储器410时)。关于图5A公开关于随机生成设备生成的密钥的进一步细节。
此外,OTP修改器部件430可以接收新实体ID请求432,并且可以基于新实体ID请求432而更新存储在OTP存储器410中的实体ID信息412。密钥推导器420可以进一步包括单向函数部件440。在一些实施例中,单向函数可以接收两个或更多输入,并且可以基于两个或更多输入来生成结果。例如,单向函数可以在存储在OTP存储器410中的设备生成的密钥411以及至少一部分实体ID 412上执行基于散列的计算或函数,以生成推导的基密钥442。在一些实施例中,单向函数部件440可以响应于接收到密钥请求441而生成推导的基密钥442。例如,单向函数可以响应于密钥请求441从设备生成的密钥411和实体ID 412的组合生成和输出推导的基密钥442。单向函数部件440可以包括密钥树部件,以由密钥树部件保护推导的基密钥442的生成或创建免于其可能试图收集与包括密钥推导器420的设备的内部操作有关的信息的诸如差分功率分析(DPA)之类的外部监控攻击或者其他这样的未授权攻击。密钥树部件的示例函数可以包括但不限于密码散列函数。因而,使用密钥树部件可以是为了用实体ID 412多样化或修改设备生成的密钥411。关于图8公开关于密钥树部件的进一步细节。
密钥推导器420可以进一步包括加密部件450。在一些实施例中,加密部件450可以接收推导的基密钥442和附加密钥451,并且可以从推导的基密钥442和附加密钥451生成加密的密钥452。例如,在一些实施例中,第一实体可以关联于由密钥推导器420生成的推导的基密钥442。第二实体可以将密钥推导器420的电路装置并入到第二实体制造的设备中。据此,第二实体可能希望让密钥推导器420的输出基于仅第二实体知道的密钥。因而,第二实体可以提供(例如,通过设备的附加电路装置)附加密钥451,该附加密钥451将用推导的基密钥442加密以生成加密的密钥452。在一些实施例中,加密部件450可以是高级加密标准(AES)部件。在一些实施例中,AES部件可以接收推导的基密钥442和附加密钥451,并且组合推导的基密钥442和附加密钥451以生成或创建加密的密钥452作为输出。在一些实施例中,AES部件可以基于加密推导的基密钥442和附加密钥451的组合来生成或创建加密的密钥452。例如,AES部件可以接收与推导的基密钥442对应的256个比特以及与附加密钥451对应的附加256个比特,并且可以基于加密推导的基密钥442和附加密钥451的组合来生成或创建256个比特的加密的密钥452。加密机制的示例包括但不限于高级加密标准(AES)。
图5A是依照一些实施例的用于生成和存储设备生成的密钥的示例方法590的流程图。一般而言,方法590可以由处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)、或其组合。在一些实施例中,方法590可以由图1A和图1B的密钥推导器111、图2的密钥推导器200、或者图4的密钥推导器420来执行。
如图5A所示,方法590可以开始于处理逻辑接收用以生成设备生成的密钥的初始化请求(块591)。在一些实施例中,处理逻辑可以对初始化请求仅响应一次。例如,在设备生成的密钥已被存储在设备的存储器中之后,处理逻辑可以不对初始化请求做出响应。处理逻辑可以标识设备的物理特性(块592)。设备的物理特性的示例包括但不限于基于硬件的振荡器、包括密钥推导器的集成电路的温度、或者其它这样的特性,这些特性可以对于设备或集成电路是唯一的。作为示例,基于硬件的振荡器可以用于对信号进行采样,以获得为‘0’或‘1’的值,并且可以随机地获得或标识采样的值。此外,在一些实施例中,诸如时间(例如,当前时间)之类的其它特性可以用于生成或部分地生成设备生成的密钥。处理逻辑可以进一步基于设备的物理特性来随机地生成设备生成的密钥(块593)。例如,可以基于设备的物理特性将设备生成的密钥的每个比特的值随机地选择为‘0’或‘1’。随后,随机生成的设备生成的密钥可以被存储在设备的存储器中(块594)。例如,设备生成的密钥可以被存储在设备的OTP存储器中。
图5B是用于基于实体ID和设备生成的密钥生成推导的基密钥的示例方法500的流程图。一般而言,方法500可以由处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)、或其组合。在一些实施例中,方法500可以由图1A和图1B的密钥推导器111、图2的密钥推导器200、或者图4的密钥推导器420来执行。
如图5B所示,方法500可以开始于处理逻辑接收用以推导密钥的请求(块510)。例如,响应于用以推导密钥的请求,单向函数部件可以接收用以生成推导的基密钥的指示。处理逻辑可以进一步接收与请求关联的第一实体ID(块520)。例如,OTP存储器可以存储实体ID的列表,并且处理逻辑可以从实体ID的列表标识出匹配与请求关联的实体ID的特定实体ID。处理逻辑可以进一步基于设备生成的密钥和第一实体ID生成第一推导的基密钥(块530)。例如,可以在设备生成的密钥和第一实体ID上执行散列函数以生成第一推导的基密钥。处理逻辑可以接收用以推导密钥的第二请求(块540)。此外,处理逻辑可以接收与第二请求关联的第二实体ID(块550)。例如,第二实体ID可以包括第二标识,并且不同于用于生成第一推导的基密钥的第一实体ID。随后处理逻辑可以基于用于推导第一推导的基密钥的相同设备生成的密钥和第二实体ID生成第二推导的基密钥(块560)。
因而,可以基于存储在OTP存储器中的相同的设备生成的密钥来生成第一推导的基密钥和第二推导的基密钥。然而,可以进一步基于第一实体ID来生成第一推导的基密钥,并且可以进一步基于与第一实体ID不同的第二实体ID来生成第二推导的基密钥。据此,虽然第一推导的基密钥和第二推导的基密钥二者都可以是基于存储在OTP存储器中的单个设备生成的密钥,但是第一推导的基密钥可以不同于第二推导的基密钥。此外,第一推导的基密钥和第二推导的基密钥可以不被存储在OTP存储器中。因而,响应于用以生成推导的基密钥的请求,可以从设备生成的密钥和对应的实体ID连续地生成第一推导的基密钥和第二推导的基密钥。
图6A是示例一次性可编程(OTP)存储器600的框图。一般而言,OTP存储器600可以对应于图1B的OTP存储器112或者图4的OTP存储器410。OTP存储器600可以存储设备生成的密钥(例如,设备生成的密钥120、210或411)以及与实体ID(例如,实体ID 130、220或412)对应的计数器的值。
如图6A所示,OTP存储器600可以包括多个存储位置或字段。例如,OTP存储器600可以包括用于存储设备生成的密钥610的第一位置或第一字段。此外,OTP存储器600可以包括用于存储诸如计数器的值620之类的实体ID信息的第二位置或第二字段。如先前描述的,OTP存储器600可以是一种类型的存储器,其中存储器的每个比特可以被编程或设置一次。在一些实施例中,对OTP存储器的每个比特的编程或设置由熔断器(例如,与低阻抗关联并且被设计为在编程或设置对应比特之后永久破坏导电路径的电熔断器)或反熔断器(例如,与初始高阻抗关联并且被设计为在编程或设置对应比特之后永久创建导电路径的电部件)来锁定。作为示例,OTP存储器的每个比特可以开始于为‘0’的初始值,并且可以被编程或设置为后来值‘1’(或反之亦然)。因而,为了将具有值‘00000001’的设备生成的密钥编程或设置到OTP存储器中,OTP存储器的一个比特可以从初始值‘0’被编程为后来值‘1’。一旦OTP存储器的比特已被编程为后来值‘1’,那么该比特可以不被编程回到值‘0’。
据此,计数器的值620可以由OTP存储器600的编程个体比特来设置。作为示例,OTP存储器的八个比特可以用于存储计数器的值620。OTP存储器的第一比特可以被编程为值‘1’,使得计数器的值620表示值‘00000001’。在一些实施例中,计数器的每个值可以表示不同的实体ID。例如,计数器的第一值(例如,值620)可以对应于第一实体ID,并且计数器的第二值(例如,在对OTP存储器的另一比特的编程之后)可以对应于第二实体ID。
图6B是具有更新的实体ID的示例一次性可编程(OTP)存储器650的框图。一般而言,OTP存储器650可以对应于在对至少一个附加比特(对应于计数器的值)编程之后的OTP存储器600。
如图6B所示,OTP存储器650可以在第一位置存储设备生成的密钥610。例如,设备生成的密钥610的值(例如比特)不可以改变。此外,OTP存储器650可以存储计数器的值660。例如,计数器的第一值可以对应于值‘00000001’,并且计数器的值660可以对应于相同的计数器在其已被递增之后的第二值‘00000011’。据此,计数器的递增可以包括对OTP存储器的附加比特的编程。
如先前描述的,可以从设备生成的密钥和实体ID(例如,计数器的值)来生成推导的基密钥。实体ID可以通过对指派给计数器的不同比特进行编程来改变,而设备生成的密钥可以保持不变。因而,可以从设备生成的密钥和计数器的第一值生成第一推导的基密钥,并且可以从相同的设备生成的密钥和相同计数器的第二值生成第二推导的基密钥。
图7A是用于从设备生成的密钥和计数器的值生成推导的基密钥的示例方法700的流程图。一般而言,方法700可以由处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)、或其组合。在一些实施例中,方法700可以由图1A和图1B的密钥推导器111、图2的密钥推导器200、或者图4的密钥推导器420来执行。
如图7所示,方法700可以开始于处理逻辑接收用以生成推导的基密钥的请求(块710)。例如,可以接收用以基于设备生成的密钥和存储在OTP存储器中的实体ID来生成推导的基密钥的请求。处理逻辑可以进一步接收计数器的第一值和设备生成的密钥(块720)。例如,可以从OTP存储器接收计数器的第一值和设备生成的密钥。随后,处理逻辑可以基于计数器的第一值和设备生成的密钥生成第一推导的基密钥(块730)。处理逻辑可以进一步接收与新实体关联的请求(块740)。例如,处理逻辑可以接收用以更新在OTP存储器中存储的实体ID的请求。在一些实施例中,实体ID信息的更新可以导致存储在OTP存储器中的计数器的值的递增。可以通过对OTP存储器的与计数器的值对应的附加比特的编程来递增计数器的值。据此,处理逻辑可以将计数器更新为第二值(块750)。接着,处理逻辑可以接收用以生成推导的基密钥的另一请求(块760)。响应于用以生成推导的基密钥的请求,可以基于计数器的第二值和设备生成的密钥生成第二推导的基密钥(块770)。例如,可以基于用于生成第一推导的基密钥的相同的设备生成的密钥来生成第二推导的基密钥,但是可以进一步基于用于生成第一推导的基密钥的相同计数器的不同值来生成第二推导的基密钥。
据此,可以响应于针对新实体ID的请求而更新计数器的值,并且可以基于更新的实体ID来生成不同的推导的基密钥。因而,第一实体ID可以对应于计数器的第一值,并且第二实体ID可以对应于在计数器已经被递增之后的计数器的第二值。
图7B是用于基于设备生成的密钥和匹配的实体ID来生成推导的基密钥的示例方法780的流程图。一般而言,方法780可以由处理逻辑来执行,处理逻辑可以包括硬件(例如,处理设备、电路装置、专用逻辑、可编程逻辑、微码、设备的硬件等)、软件(例如,在处理设备上运行或执行的指令)、或其组合。在一些实施例中,方法780可以由图1A和图1B的密钥推导器111、图2的密钥推导器200、或者图4的密钥推导器420来执行。
如图7B所示,方法780可以开始于处理逻辑接收用以生成推导的基密钥的请求(块781)。处理逻辑可以进一步标识与请求关联的实体ID(块782)。例如在一些实施例中,用以生成推导的基密钥的请求可以包括实体ID。在相同或备选实施例中,实体ID可以是指派给利用设备的实体的数字值或序列。随后处理逻辑可以确定与请求关联的实体ID是否匹配存储在存储器中的实体ID(块783)。例如,OTP存储器可以存储一个或多个实体ID(例如,实体ID的列表或者对应于有效实体ID的计数器)。在一些实施例中,如果OTP存储器存储实体ID的列表,则处理逻辑可以确定接收的实体ID是否匹配来自存储在OTP存储器中的实体ID的列表的实体ID之一。在备选实施例中,OTP存储器可以存储对应于实体ID的计数器的值。在这样的实施例中,处理逻辑可以确定与用以生成推导的基密钥的请求关联的实体ID是否匹配存储在OTP存储器中的计数器的值。据此,如果处理逻辑确定与请求关联的实体ID不匹配存储在存储器中的实体ID,则可以不生成推导的基密钥(块784)。然而,如果处理逻辑确定与请求关联的实体ID匹配存储在存储器中的实体ID,则处理逻辑可以基于存储在存储器中的实体ID和设备生成的密钥来生成推导的基密钥(块785)。此外,处理逻辑可以发送推导的基密钥(块786)。在一些实施例中,处理逻辑在发送推导的基密钥之前对它进行加密。这样的加密的示例可以包括但不限于Ferguson-Schneier公开密钥交换,但是提供所要求的密钥私密性的其它方案就已足够。公开密钥密码的使用可以用于确保推导的基密钥由硬件加密并且可以仅由相关实体解密。在相同或备选实施例中,推导的基密钥可以被发送到已经请求生成推导的基密钥的实体。
图8是依照一些实施例的示例密钥树800的框图。一般而言,密钥树800可以对应于图4的单向函数部件440。密钥树800可以接收第一输入(例如实体ID)和第二输入(例如设备生成的密钥),并且产生其可以对应于推导的基密钥的散列结果。
在一些实施例中,密钥树800可以执行熵重新分布操作。如本文中使用的,“熵重新分布操作”(或“熵分布操作”)可以是混合其输入(例如,实体ID和设备生成的密钥)的操作,使得关于输入比特的未知信息在输出比特之间重新分布。例如,假设利用熵重新分布操作f反复处理x比特密码密钥K0,使得对于每个i>1,密钥Ki=f(Ki-1)。接着,假设攻击者获得关于n个不同的密钥中的每个密钥Ki的y比特的信息(例如,作为试图外部监控攻击的部分获得),从而提供了绰绰有余的用于求解密钥K0的信息(例如,y*n>x)。使用熵分布操作f可以使这样的求解计算上不可行。密码散列函数H是可以用作熵重新分布操作的操作的示例。例如,考虑产生256位结果的强散列函数H。给定随机256位初始密钥K0,对于每个i>1,让Ki=H(Ki-1)。了解(例如)每个K0…K999,999的最低有效位的攻击者具有与K0有关的1,000,000比特的数据。具有无限计算能力的假想攻击者可以通过测试K0的所有可能2256个值以标识与最低有效位的已知序列一致的值来找到K0。然而,实际的攻击者具有可用的有限计算能力,并且熵重新分布操作防止存在用于在给出通过试图外部监控攻击泄露的信息的情况下求解K0(或任何其它Ki)的计算上实用的方式。
可以使用(而不限于)密码散列函数、使用块密码(诸如AES)构造的操作、伪随机变换、伪随机置换、其它密码操作、或其组合来实现熵重新分布操作。为了方便起见,关于散列来描述某些示例性实施例,但是本领域技术人员将理解,依据前述内容,代之或此外,还可以使用其它熵重新分布函数。
还可以从基础操作构造多个熵重新分布操作。通过示例的方式,如果需要两个256位熵重新分布操作f0()和fi(),则f0()可以包括将SHA-256密码散列函数应用于与到f0()的输入连接起来的操作标识符串“f0”,而f1()可以包括将SHA-256应用于与到f1()的输入连接起来的操作标识符串“f1”。可以使用熟知的AES块密码来解译熵重新分布操作。例如,为了实现f0()…fb-1(),每个fi()可以使用其输入作为AES-256密钥,以加密对于i在0…b-1内的选择唯一的一对128位输入块,从而产生256比特的输出。
密钥树800可以能够计算非线性密码熵重新分布操作f0()、f1()、…、fb-1()的集,其中b>1是正整数。这b个熵重新分布函数可以以树结构来配置。例如,可以使用用于表示这一与b有关树在树的每个节点处的b个可能分支的b个完全不同的熵分布函数f0()…fb-1()来创建高度Q(即,具有从0至Q的Q+1个层次)的简单的与b有关树结构,每个节点表示可能的推导的基密钥。在这样的树中,从根密码密钥KSTART(其在层次0)开始,可以在层次1计算b个可能的推导的基密钥:最左分支的f0(KSTART);下一分支的f1(KSTART);以及继续下去直到最右分支的fb-1(KSTART)。在层次2,由于f0()…fb-1()中的每个函数可以应用于b个可能的层次1密钥中的每个密钥,所以可以推导b2个可能密钥。当然,计算具体层次2节点仅需要两次(非b2次)计算(即,不计算不在路径上的节点)。树继续针对连续的层次1至Q进行,其中可以通过依次应用f0()…fb-1()来处理在前层次的每个可能密钥(即,不同节点),以推导b个附加可能的推导的基密钥。整个密钥树具有Q+1个层次,开始于在层次0的单个节点,继续到在层次i的bi个节点,并且结束于在层次Q的bQ个节点。因而,存在从在层次0的根节点到在层次Q的bQ个最终节点的bQ个可能路径。与在不同层次应用的唯一函数序列对应的每个这样的可能路径可以被表示为Q个整数的序列,每个整数从(0…b-1)中选择。例如,在示例性实施例中,b=2。因而,两个熵重新分布操作f0()和f1()被使用(并且可以从例如如上所述的基础操作来构造)。如果Q=128(即,高度是128),则2128个路径是可能的,并且需要128个熵重新分布函数计算,以从层次0节点(即,开始密钥)推导层次Q密钥。
作为变体,实施例可以在b的选择方面涉及更多多样性,诸如在层次之间变化b的值,和/或基于特定层次所采取的路由来变化b。同样地,还可以变化熵重新分布操作,诸如通过使熵重新分布操作fi()在不同层次不同或者使这些操作依赖于特定层次所采取的序列。
图8中用图表示了示例密钥推导过程。过程开始于其是所表示的KSTART(801)的树的开始点以及路径(PATH)P1…PQ(802)。例如,KSTART是设备生成的密钥的值,并且路径P1…PQ(802)由实体ID确定(实体ID到P1…PQ的转换在下面进行讨论)。路径指定将被应用于KSTART的一系列熵重新分布操作。
在实施方式中,实体ID H1被分解成Q个部分P1、P2、…、PQ。在示例分解中,每个部分Pi是从0至(b-1)的整数(例如,如果b=4则每个Pi是两位值(0、1、2或3))。同样地,如果b=2,则每个Pi是单个比特(0或1)。因此,路径部分P1…PQ可以用于通过以下方式来指定从KSTART到KSTART,PATH的具体路径:通过应用函数f0()、f1()、…、fb-1()以产生多个中间密钥,从而如下产生KSTART,PATH。首先,函数fP 1被应用于KSTART(803)以产生中间密钥KSTART,P 1,其后是在KSTART,P 1上应用fP 2以产生中间密钥KSTART,P 1,P 2(804)以此类推,直到最后在中间密钥KSTART,P 1,P 2,…,P Q-1(805)上应用fP Q以产生最终推导的基密钥KSTART,P 1,P 2,…,P Q(806)。注意,每个中间密钥的推导依赖于至少一个前任密钥和消息标识符的相关部分。为了方便,可以用符号KSTART,PATH(指示通过开始于KSTART并且遵循PATH而到达的密钥)来表示这一最终推导的基密钥。
图9图示指令集可以在其内执行的计算机系统的示例机器,指令集用于使得机器执行本文中讨论的方法中的任何一个或多个方法。在备选实施方式中,机器可以经由网络920连接(例如,联网)到LAN、内联网、外联网、和/或因特网中的其它机器。机器可以以客户端-服务器网络环境中的服务器或客户端机器的资格进行操作、可以操作作为对等(或分布式)网络环境中的对等机器、或者作为云计算基础设施或环境中的服务器或客户端机器。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或桥接器、或者有能力执行指令集(序列的或其它方式的)的任何机器,指令指定将由该机器采取的动作。进一步地,尽管图示了单个机器,但是术语“机器”还应视为包括单独或联合地执行一个或多个指令集以执行本文中讨论的方法中的任何一个或多个方法的机器的任何集合。
示例计算机系统包括处理设备902、主存储器904(例如只读存储器(ROM)、闪速存储器、诸如同步DRAM(SDRAM)或DRAM(RDRAM)之类的动态随机存取存储器(DRAM)等)、静态存储器906(例如闪速存储器、静态随机存取存储器(SRAM)等)、以及数据存储设备918,它们经由总线930彼此通信。
处理设备902表示诸如微处理器、中央处理单元等之类的一个或多个通用处理设备。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或者实现其它指令集的处理器、或者实现指令集的组合的处理器。处理设备902还可以是诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等之类的一个或多个专用处理设备。处理设备902被配置为执行指令926,以用于执行本文中讨论的操作和步骤。
计算机系统可以进一步包括网络接口设备908。计算机系统还可以包括视频显示单元910(例如液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备912(例如键盘)、光标控制设备914(例如鼠标)、图形处理单元922、视频处理单元928、音频处理单元932、以及信号生成设备916(例如扬声器)。
数据存储设备918可以包括机器可读存储介质924(还称为计算机可读介质),在机器可读存储介质924上存储体现本文中描述的方法或功能中的任何一个或多个方法或功能的指令或软件926的一个或多个集。在通过计算机系统的其执行期间,指令926还可以完整地或至少部分地驻留在主存储器904内和/或在处理设备902内,主存储器904和处理设备902还组成机器可读存储介质。
在一个实施方式中,指令926包括用于实现对应于密钥推导器(例如,图2的密钥推导器200或者图4的密钥推导器420)的功能的指令。尽管机器可读存储介质924在示例实施方式中被示出为单个介质,但是术语“机器可读存储介质”应当视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或关联缓存和服务器)。术语“机器可读存储介质”还应视为包括有能力存储或编码指令集的任何介质,指令集用于由机器执行并且使得机器执行本公开的方法中的任何一个或多个方法。据此,术语“机器可读存储介质”应视为包括但不限于固态存储器、光介质和磁介质。
已经在计算机存储器内的数据比特上的操作的算法和符号表示方面给出了前述详细描述的一些部分。这些算法描述和表示是由数据处理领域技术人员用于将其工作实质最有效地传达给本领域其他技术人员的方式。本文中并且通常,算法被设想为是产生期望结果的自相一致操作序列。操作是要求物理量的物理操纵的那些操作。通常,虽然不是必要地,这些量采取有能力被存储、组合、比较和以其它方式操纵的电或磁信号的形式。主要出于习惯用法的原因,将这些信号称为比特、值、元素、符号、字符、项、数等有时已证明是方便的。
然而,应当牢记,所有这些和相似术语都将关联于适当的物理量,并且仅仅是应用于这些量的方便的标签。除非特别另外声明,否则如从以上讨论显而易见的,理解的是,贯穿描述,利用诸如“标识”或“确定”或“执行”或“进行”或“收集”或“创建”或“发送”等之类的术语的讨论指的是计算机系统或相似电子计算设备的动作和处理,计算机系统或相似电子计算设备将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换成相似地表示为计算机系统存储器或寄存器或其它这样的信息存储设备内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的装置。这一装置可以被专门构造用于旨在目的,或者它可以包括选择性地激活或由存储在计算机中的计算机程序重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,诸如但不限于包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、或者适合于存储电子指令的任何类型的介质,它们各自耦合到计算机系统总线。
本文中所呈现的算法和显示并不固有地与任何特定计算机或其它装置有关。依照本文中的教导,各种通用系统可以与程序一起使用,或者构造用于执行方法的更专用的装置可以证明是方便的。用于各种这些系统的结构将出现,如下面在描述中阐述的。此外,并且没有参照任何特定编程语言来描述本公开。将理解的是,各种编程语言可以用于实现如本文中描述的本公开的教导。
本公开可以被提供为可以包括具有存储在其上的指令的机器可读介质的计算机程序产品或软件,其可以用于对计算机系统(或其它电子设备)进行编程以执行根据本公开的处理。机器可读介质包括用于以机器(例如计算机)可读的形式存储信息的任何机构。例如,机器可读(例如计算机可读)介质包括诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪速存储器设备等之类的机器(例如计算机)可读存储介质。
在前述说明书中,本公开的实施方式已参照其具体示例实施方式进行了描述。将明显的是,可以对其做出各种修改,而不脱离如所附权利要求中阐述的本公开的实施方式的更广泛的精神和范围。据此,说明书和附图将在说明性意义而不是限制性意义上来对待。
Claims (20)
1.一种方法,包括:
接收用以生成第一密钥的请求;
接收被存储在存储器中的设备生成的密钥;
接收被存储在所述存储器中的第一实体标识(ID);以及
基于被存储在所述存储器中的所述第一实体ID和所述设备生成的密钥来生成所述第一密钥。
2.根据权利要求1所述的方法,进一步包括:
接收用以生成第二密钥的第二请求;
基于所述第二请求接收第二实体ID;以及
基于所述第二实体ID和被存储在所述存储器中的相同的所述设备生成的密钥来生成所述第二密钥。
3.根据权利要求1所述的方法,其中所述设备生成的密钥由与所述存储器关联的集成电路随机地生成。
4.根据权利要求1所述的方法,其中所述存储器是一次性可编程(OTP)存储器,并且其中所述第一实体ID对应于被存储在所述OTP存储器中的计数器的值,其中所述计数器的所述值对应于所述OTP存储器的多个比特。
5.根据权利要求4所述的方法,进一步包括:
接收与新实体关联的请求;以及
响应于与所述新实体关联的所述请求而递增被存储在所述OTP存储器中的所述计数器的所述值,其中通过对所述OTP存储器的所述多个比特中与所述计数器的所述值对应的一个比特进行编程来执行所述计数器的所述值的所述递增,其中所述第二实体ID基于被存储在所述OTP存储器中的所述计数器的经递增的所述值。
6.根据权利要求1所述的方法,进一步包括:
接收附加密钥;以及
基于所述附加密钥和所述第一密钥的组合来生成加密的密钥。
7.根据权利要求1所述的方法,进一步包括:
接收初始化请求;
响应于所述初始化请求,基于与包括所述存储器的集成电路的物理特性关联的比特的随机选择来生成所述设备生成的密钥;以及
将所述设备生成的密钥存储在所述存储器中。
8.一种系统,包括:
存储器,所述存储器用于存储设备生成的密钥和第一实体标识(ID);以及
密钥推导器,所述密钥推导器与所述存储器耦合并且用于:
接收用以生成第一推导的密钥的请求;
响应于用以生成所述第一推导的密钥的所述请求,从所述存储器接收所述设备生成的密钥和所述第一实体ID;以及
基于来自所述存储器的所述第一实体ID和所述设备生成的密钥来生成所述第一推导的密钥。
9.根据权利要求8所述的系统,其中所述密钥推导器进一步用于:
接收用以生成第二推导的密钥的第二请求;
响应于所述第二请求接收第二实体ID;以及
基于所述第二实体ID以及来自所述存储器的用于生成所述第一推导的基密钥的相同的所述设备生成的密钥来生成所述第二推导的密钥。
10.根据权利要求8所述的系统,其中所述设备生成的密钥由与所述存储器关联的集成电路随机地生成。
11.根据权利要求8所述的系统,其中所述存储器是一次性可编程(OTP)存储器,并且其中所述第一实体ID对应于被存储在所述OTP存储器中的计数器的值,其中所述计数器的所述值对应于所述OTP存储器的多个比特。
12.根据权利要求11所述的系统,其中所述密钥推导器进一步用于:
接收与新实体关联的请求;以及
响应于与所述新实体关联的所述请求而递增被存储在所述OTP存储器中的所述计数器的所述值,其中通过对所述OTP存储器的所述多个比特中的与所述计数器的所述值对应的一个比特进行编程来执行所述计数器的所述值的所述递增,其中所述第二实体ID基于被存储在所述OTP存储器中的所述计数器的经递增的所述值。
13.根据权利要求8所述的系统,其中所述密钥推导器进一步用于:
接收附加密钥;以及
基于所述附加密钥和所述第一推导的密钥的组合来生成加密的密钥。
14.根据权利要求8所述的系统,其中所述密钥推导器进一步用于:
接收初始化请求;
响应于所述初始化请求,基于与包括所述存储器的集成电路的物理特性关联的比特的随机选择来生成所述设备生成的密钥;以及
将所述设备生成的密钥存储在所述存储器中。
15.一种装置,包括:
一次性可编程(OTP)存储器,用于存储设备生成的密钥和第一实体标识(ID);以及
单向函数部件,所述单向函数部件被耦合到所述OTP存储器并且用于:
接收用以生成第一推导的基密钥的请求;
接收被存储在所述OTP存储器中的所述设备生成的密钥;
接收被存储在所述存储器中的所述第一实体ID;以及
基于被存储在所述OTP存储器中的所述第一实体ID和所述设备生成的密钥来生成所述第一推导的基密钥。
16.根据权利要求15所述的装置,其中所述单向函数部件进一步用于:
接收用以生成第二推导的基密钥的第二请求;
响应于所述第二请求,接收被存储在所述OTP存储器中的第二实体ID;以及
基于被存储在所述OTP存储器中的所述第二实体ID和相同的所述设备生成的密钥来生成所述第二推导的基密钥。
17.根据权利要求16所述的装置,其中所述第一实体ID对应于被存储在所述OTP存储器中的计数器的值,并且其中所述计数器的所述值对应于所述OTP存储器的多个比特。
18.根据权利要求17所述的装置,所述装置进一步包括:
OTP存储器修改器部件,用于:
接收与新实体关联的请求;以及
响应于与所述新实体关联的所述请求而递增被存储在所述OTP存储器中的所述计数器的所述值,其中通过对所述OTP存储器的所述多个比特中的与所述计数器的所述值对应的一个比特进行编程来执行所述计数器的所述值的所述递增,其中所述第二实体ID基于被存储在所述OTP存储器中的所述计数器的经递增的所述值。
19.根据权利要求15所述的装置,进一步包括:
加密部件,用于接收附加密钥,并且用于基于所述附加密钥和所述第一推导的基密钥的组合来生成加密的密钥。
20.根据权利要求15所述的装置,所述装置进一步包括:
OTP存储器修改器部件,用于:
接收用以随机地生成所述设备生成的密钥的请求;
响应于所述请求,生成所述设备生成的密钥,其中所述设备生成的密钥包括基于集成电路的物理特性随机地采样的比特值;以及
将所述设备生成的密钥存储在所述OTP存储器中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461983416P | 2014-04-23 | 2014-04-23 | |
US61/983,416 | 2014-04-23 | ||
US201462036409P | 2014-08-12 | 2014-08-12 | |
US62/036,409 | 2014-08-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105007157A true CN105007157A (zh) | 2015-10-28 |
CN105007157B CN105007157B (zh) | 2020-02-18 |
Family
ID=54335789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510194516.9A Active CN105007157B (zh) | 2014-04-23 | 2015-04-22 | 基于设备生成的密钥来生成和管理多个基密钥 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9768957B2 (zh) |
CN (1) | CN105007157B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108140092A (zh) * | 2015-12-02 | 2018-06-08 | 密码研究公司 | 具有多个可信根的设备 |
CN108370310A (zh) * | 2015-12-16 | 2018-08-03 | 密码研究公司 | 生命周期状态的加密管理 |
CN109495260A (zh) * | 2018-12-28 | 2019-03-19 | 飞天诚信科技股份有限公司 | 一种终端设备及其管理密钥的方法 |
CN111133720A (zh) * | 2017-07-18 | 2020-05-08 | 励智识别技术有限公司 | 在设备之间安全地通信的方法和设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9613714B1 (en) | 2016-01-19 | 2017-04-04 | Ememory Technology Inc. | One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method |
TWI648741B (zh) | 2017-06-05 | 2019-01-21 | 慧榮科技股份有限公司 | 資料儲存裝置之控制器以及進階資料抹除的方法 |
ES2875583T3 (es) * | 2019-01-14 | 2021-11-10 | Winbond Electronics Corp | Actualización de claves criptográficas almacenadas en la memoria no volátil |
KR102621645B1 (ko) | 2019-03-12 | 2024-01-05 | 삼성전자주식회사 | 보안 집적 회로를 포함하는 전자 장치 |
US11775690B2 (en) * | 2020-12-02 | 2023-10-03 | Dell Products L.P. | System and method for supporting multiple independent silicon-rooted trusts per system-on-a-chip |
EP4307149A3 (en) * | 2022-07-11 | 2024-04-03 | Samsung Electronics Co., Ltd. | System-on-chip and electronic device including the same |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010041593A1 (en) * | 2000-05-10 | 2001-11-15 | Nec Corporation | Mobile communication device and data concealing method |
CN1514403A (zh) * | 2003-06-24 | 2004-07-21 | 深圳达实智能股份有限公司 | 智能卡一卡一密方法和系统 |
CN1527533A (zh) * | 2003-03-06 | 2004-09-08 | ������������ʽ���� | 数据处理器件及其方法和程序 |
CN101277182A (zh) * | 2008-03-14 | 2008-10-01 | 北京信联恒业通讯技术有限公司 | 基于公开密钥体系-用户身份识别卡获取动态口令的方法 |
US20110208975A1 (en) * | 2008-06-23 | 2011-08-25 | Sibert Herve | Electronic device and method of software or firmware updating of an electronic device |
US20120069995A1 (en) * | 2010-09-22 | 2012-03-22 | Seagate Technology Llc | Controller chip with zeroizable root key |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE504446T1 (de) * | 2002-12-02 | 2011-04-15 | Silverbrook Res Pty Ltd | Totdüsenausgleich |
US8468361B2 (en) * | 2005-09-21 | 2013-06-18 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US8285988B2 (en) * | 2006-05-09 | 2012-10-09 | Broadcom Corporation | Method and system for command authentication to achieve a secure interface |
FR2926382B1 (fr) * | 2008-01-11 | 2010-02-26 | Proton World Internat Nv | Hierarchisation de cles cryptographiques dans un circuit electronique |
EP2343662B1 (en) * | 2009-12-18 | 2014-09-10 | ST-Ericsson (France) SAS | Method of and apparatus for storing data |
CN102625300B (zh) * | 2011-01-28 | 2015-07-08 | 华为技术有限公司 | 密钥生成方法和设备 |
WO2012164721A1 (ja) * | 2011-06-02 | 2012-12-06 | 三菱電機株式会社 | 鍵情報生成装置及び鍵情報生成方法 |
US10771448B2 (en) * | 2012-08-10 | 2020-09-08 | Cryptography Research, Inc. | Secure feature and key management in integrated circuits |
US9390246B2 (en) * | 2013-09-25 | 2016-07-12 | Intel Corporation | Creating secure original equipment manufacturer (OEM) identification |
-
2015
- 2015-04-06 US US14/679,929 patent/US9768957B2/en active Active
- 2015-04-22 CN CN201510194516.9A patent/CN105007157B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010041593A1 (en) * | 2000-05-10 | 2001-11-15 | Nec Corporation | Mobile communication device and data concealing method |
CN1527533A (zh) * | 2003-03-06 | 2004-09-08 | ������������ʽ���� | 数据处理器件及其方法和程序 |
CN1514403A (zh) * | 2003-06-24 | 2004-07-21 | 深圳达实智能股份有限公司 | 智能卡一卡一密方法和系统 |
CN101277182A (zh) * | 2008-03-14 | 2008-10-01 | 北京信联恒业通讯技术有限公司 | 基于公开密钥体系-用户身份识别卡获取动态口令的方法 |
US20110208975A1 (en) * | 2008-06-23 | 2011-08-25 | Sibert Herve | Electronic device and method of software or firmware updating of an electronic device |
US20120069995A1 (en) * | 2010-09-22 | 2012-03-22 | Seagate Technology Llc | Controller chip with zeroizable root key |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108140092A (zh) * | 2015-12-02 | 2018-06-08 | 密码研究公司 | 具有多个可信根的设备 |
CN108370310A (zh) * | 2015-12-16 | 2018-08-03 | 密码研究公司 | 生命周期状态的加密管理 |
CN108370310B (zh) * | 2015-12-16 | 2021-11-30 | 密码研究公司 | 生成加密密钥的方法、集成电路和计算机可读介质 |
US11582033B2 (en) | 2015-12-16 | 2023-02-14 | Rambus Inc. | Cryptographic management of lifecycle states |
CN111133720A (zh) * | 2017-07-18 | 2020-05-08 | 励智识别技术有限公司 | 在设备之间安全地通信的方法和设备 |
CN109495260A (zh) * | 2018-12-28 | 2019-03-19 | 飞天诚信科技股份有限公司 | 一种终端设备及其管理密钥的方法 |
CN109495260B (zh) * | 2018-12-28 | 2021-06-08 | 飞天诚信科技股份有限公司 | 一种终端设备及其管理密钥的方法 |
Also Published As
Publication number | Publication date |
---|---|
US9768957B2 (en) | 2017-09-19 |
US20150312036A1 (en) | 2015-10-29 |
CN105007157B (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105007157A (zh) | 基于设备生成的密钥来生成和管理多个基密钥 | |
US20230231711A1 (en) | Blockchain-implemented method and system | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
CN107689947B (zh) | 一种数据处理的方法和装置 | |
KR101830589B1 (ko) | 보안 공유 키 공유 시스템들 및 방법들 | |
Atiewi et al. | Scalable and secure big data IoT system based on multifactor authentication and lightweight cryptography | |
US20210044432A1 (en) | Quantum key distribution method and device, and storage medium | |
CN106416123A (zh) | 基于密码的认证 | |
CN105009507A (zh) | 借助于物理不可克隆函数创建从加密密钥中推导的密钥 | |
CN106797314A (zh) | 布置用于密钥共享的密码系统 | |
WO2014132552A1 (ja) | 順序保存暗号化システム、装置、方法およびプログラム | |
CN103973439B (zh) | 一种多变量公钥加密方法 | |
JP2016526851A (ja) | 暗号鍵を共有するためのシステム | |
US11934323B2 (en) | Diversifying a base symmetric key based on a public key | |
CN104854814A (zh) | 密钥共享网络设备及其配置 | |
CN113346998A (zh) | 密钥更新及文件共享方法、装置、设备、计算机存储介质 | |
CN105723647A (zh) | 用于共享密码密钥的系统 | |
WO2017033843A1 (ja) | 検索可能暗号処理システム | |
US20160240108A1 (en) | Ciphertext comparison system, ciphertext comparison method, ciphertext generation apparatus, ciphertext comparison apparatus, and control methods and control programs of ciphertext generation apparatus and ciphertext comparison apparatus | |
CN110851112A (zh) | 一种随机比特生成方法、装置及电子设备和存储介质 | |
US11539535B2 (en) | Generating an authentication result by using a secure base key | |
WO2018138857A1 (ja) | 検索装置、監視装置、監視方法および検索プログラム | |
JP5799635B2 (ja) | 暗号データ検索システム、装置、方法及びプログラム | |
KR102284877B1 (ko) | 효율적인 교집합 연산을 위한 함수 암호 기술 | |
CN113726512A (zh) | 密钥生成和分发方法、密钥生成装置、密钥管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |