一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

生成加密密钥的方法、集成电路和计算机可读介质与流程

2022-03-09 10:12:20 来源:中国专利 TAG:

生成加密密钥的方法、集成电路和计算机可读介质
1.本技术是国际申请号为pct/us2016/066762、国际申请日为2016年12月15日、于2018年06月11日进入中国国家阶段、中国国家申请号为201680072688.1、发明名称为“生成加密密钥的方法、集成电路和计算机可读介质”的发明专利申请的分案申请。
2.相关申请的交叉引用
3.本技术要求于2015年12月6日提交的、名称为“cryptographic management of lifecycle states”的美国临时专利申请序列号62/268,018的权益,其出于所有目的通过引用并入本文。
附图说明
4.图1是示出了生命周期管理系统的框图。
5.图2是示出了生成依赖于生命周期状态的加密密钥的方法的流程图。
6.图3是示出了包括密码生命周期管理系统的设备的框图。
7.图4a和图4b是示出了配置和解除配置密码管理的生命周期状态的方法的流程图。
8.图5a至图5c示出了示例生命周期状态生成过程。
9.图6是示出了生成依赖于生命周期的加密密钥的方法的流程图。
10.图7是示出了可访问密钥分割值的生成的示图。
11.图8是处理系统的框图。
具体实施方式
12.很多电子设备(例如,蜂窝电话、平板计算机、机顶盒等)使用安全加密密钥。例如,这些密钥可以被用于保护设备上的数据,保护通信,和/或验证设备。当设备经历各种生命周期事件时,希望保护由设备使用的密钥免于泄露(从而保护设备上的数据,防止未经授权的使用,等等)。
13.例如,最终用户在使用设备一段时间并且在其中存储敏感数据之后可能会遇到需要将设备送回制造方以用于修理的问题。在这种情况中,最终用户不希望制造方或维修中心访问被存储在设备上的敏感数据。但是,最终用户还希望在设备被返回时这些数据对于他们可访问。
14.在一个实施例中,软件不可访问(例如,硬连线到设备中)的秘密密钥值根据由一次性可编程位组成的寄存器被加扰。这些一次性可编程(otp)位通过硬件设计仅能够从其初始值改变为另一值一次,并且不能被返回到初始值(例如,反映片上保险丝是已经被熔断还是仍然完好无损的位)。
15.每当生命周期事件发生(例如,设备被发送到修理中心)时,otp寄存器中的第一otp寄存器被用于改变秘密密钥值的加扰。通过改变秘密密钥值的加扰,由设备使用的密钥也被改变,从而防止由设备先前使用的数据、授权或认证被复制或使用(例如,由维修中心员工)。
16.otp寄存器中的第二otp寄存器被用于取消对秘密密钥的加扰的改变。因此,第二
otp寄存器可以将由设备使用的密钥“恢复”到其预先的生命周期事件值,从而恢复用来使用在生命周期事件之前被使用的数据、授权和/或认证的能力。
17.otp寄存器中的第三otp寄存器被用于影响对秘密密钥的加扰的永久改变,从而永久地防止数据、授权或认证被访问或使用。例如,当用户销售设备并且因此不希望新的所有者读取先前的所有者数据,或者使用与先前的所有者相关联的授权和认证时,可以使用这一寄存器中的位。
18.图1是示出了生命周期管理系统的框图。在图1中,系统100包括一次性可编程(otp)存储器120、生命周期值生成器130、单向函数140、密钥融合150、秘密密钥170和otp编程电路180。otp存储器120包括生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123。
19.otp存储器120可以是例如一次性电可编程半导体存储器(例如,在半导体基底上或使用半导体材料而被制造)。由otp存储器120存储的位通过硬件设计仅能够从其初始值被改变为另一值一次。由otp存储器120存储的位一旦从初始值被电改变,就不能被返回到其初始值。例如,包括otp存储器120的位可以被实现为“融合”位。这些熔合位一旦被改变(即,熔断)就经历不可逆的物理过程(例如,导电元件的破坏),并且因此不能被改回到它们的初始状态。
20.otp编程电路180被可操作地耦合到otp存储器120。otp编程电路180被可操作地耦合到otp存储器120以对otp存储器120中的位编程(例如,熔断保险丝以改变生命周期提前寄存器121、生命周期回滚122寄存器、个性寄存器123等的值)。otp编程电路180可以被控制以通过在包括系统100的设备上运行的处理器和/或软件(图1中未示出)来改变otp存储器120中的位。这一处理器和/或软件可以响应于设备的用户的命令来改变otp存储器120中的位。
21.秘密密钥170被可操作地耦合到单向函数140。秘密密钥170(也被称为设备生成的一次性可编程密钥分割-dgok)将秘密密钥值175存储在硬件中。秘密密钥170向单向函数140提供秘密密钥值175。秘密密钥170可以例如被嵌入在设备的网表、安全闪存的区域或某个其他非易失性形式/电路中。在一个实施例中,秘密密钥170存储256位秘密密钥值175。
22.生命周期提前寄存器121被可操作地耦合到生命周期值生成器130。生命周期提前寄存器121存储生命周期提前值125。otp存储器120向生命周期值生成器130提供由生命周期提前寄存器121存储的生命周期提前值125。生命周期回滚寄存器122被可操作地耦合到生命周期值生成器130。生命周期回滚寄存器122存储生命周期回滚值126。otp存储器120向生命周期值生成器130提供由生命周期回滚寄存器122存储的生命周期回滚值126。
23.生命周期值生成器130从otp存储器120接收生命周期提前值125和生命周期回滚值126。生命周期值生成器130产生生命周期状态值135。生命周期值生成器130使用生命周期状态生成过程/函数来处理生命周期提前值125和生命周期回滚值126。这一生命周期状态生成过程从生命周期提前值125和生命周期回滚值126产生生命周期状态值135。生命周期状态值135被提供给单向函数140。
24.个性寄存器123被可操作地耦合到单向函数140。个性寄存器123存储个性值127。otp存储器120向单向函数140提供由个性寄存器123存储的个性值127。在一些实施例中,具有系统100的设备上的处理器和/或软件可以能够从otp存储器120读取生命周期提前寄存
器121、生命周期回滚寄存器122和个性寄存器123中的一个或多个寄存器的内容,或者以其他方式获取生命周期提前值125、生命周期回滚值126或个性值127中的一个或多个值。
25.单向函数140使用秘密密钥值175、生命周期状态值135和个性值127来生成密钥分割值145。单向函数140可以通过包括例如使用个性值127作为密钥树路径并且使用秘密密钥值127作为高级加密标准(aes)密钥的过程来产生密钥分割值145。同样,单向函数140被用来产生密钥分割值145的过程可以包括使用生命周期状态值135作为密钥树路径并且使用个性值127和秘密密钥值175的先前处理的结果作为aes密钥。其他单向函数/过程可以被用于从秘密密钥值175、生命周期状态值135和个性值127生成密钥分割值145。因此,应当理解,给定生命周期状态值135或给定个性值127之间的任何差异(甚至是一位差异)将导致不同的密钥分割值145。另外,如果单向函数过程被适当地选择,则从密钥分割值145确定秘密密钥值175应当在经济上是不可行的,即使当生命周期状态值135、生命周期提前值125、生命周期回滚值126和/或个性值127已知时。
26.密钥分割值145被提供给密钥融合150。基于密钥分割值145和基本密钥标识值151,密钥融合150产生用于由设备在加密操作中使用的加密密钥160。密钥160在图1中被示出为包括多个密钥。具体地,在图1中,密钥160包括密钥#1 161、密钥#2 162和密钥#3 163。密钥160可以包括例如用于签名(即,认证)的椭圆曲线密码(ecc)密钥、用于加密/解密的ecc私钥;aes-256设备特定的密钥和/或aes-128设备特定的密钥。用于其他用途的其他密钥也可以由密钥融合150从密钥分割值145产生。
27.在一个实施例中,具有系统100的设备可以经历各种生命周期。这些生命周期可能需要保护和/或改变密钥160的愿望。例如,在秘密密钥170已经被调配(provision)有了秘密密钥值175之后,设备可以经受实验室调试或硅调试。这可以例如在封装之后发生,设备和/或ic保持系统100回到供应商以用于初始调试和分类。在另一示例中,设备可以由用户在现场使用,并且然后被发送回oem、odm、维修店或芯片供应商以用于故障分析。当设备的故障被修复时,设备可以被运回给最终用户。在这种情况中,希望设备提供与发送设备以用于修复之前可用的功能相同的功能(和存储的数据)。在另一示例中,最终用户可以将设备出售给另一用户。在这种情况中,第一用户可能不想将他们的密钥(以及他们的数据)泄露给第二用户。
28.在一个实施例中,个性寄存器123被配置有初始值,例如十六(16)位零值(即,0x0000h)。在操作期间,个性寄存器123的位可以由otp编程180以温度计编码的计数器的方式来连续地改变。由otp编程180对个性寄存器123中的位值的这种改变可以由在设备上运行的特权进程(例如,操作系统)控制。由于otp存储器(并且因此个性寄存器123)的位只能被改变一次,所以当个性寄存器123的所有位已经被改变(例如,对于值0xffffh被设置为“1”)时,试图进一步改变个性寄存器123的值可能导致发信号通知错误。
29.在一个示例中,设备的用户可以在放弃对设备的占有(例如,向新所有者)之前使个性寄存器123被递增(或以其他方式改变个性寄存器123中的至少一个位)。在另一示例中,在将设备发送给oem之前,odm可以递增(或以其他方式改变个性寄存器123中的至少一个位)。这确保不会“留下”任何秘密被odm发现。在这些示例中,用户和/或odm可以读取个性寄存器123的内容以确保系统100将生成与在改变个性寄存器123的内容之前生成的加密密钥160不同的加密密钥160。
30.在一个实施例中,生命周期提前寄存器121被配置有初始值,例如十六(16)位零值(即,0x0000h)。同样,生命周期回滚寄存器122被配置有初始值,例如十六(16)位零值(即,0x000h)。在操作期间,生命周期提前寄存器121的位和生命周期回滚寄存器122的位可以由otp编程180以温度计编码的计数器的方式连续地并且独立地改变。
31.由otp编程180对生命周期提前寄存器121的内容和生命周期回滚寄存器122的内容的改变可以由在设备上运行的特许进程(例如,操作系统)控制。由otp编程180对生命周期提前寄存器121中的各个位值和生命周期回滚寄存器122的位的改变可以由在设备上运行的相应特许进程控制。例如,对于16位生命周期提前寄存器121和16位生命周期回滚寄存器122,只允许上至16个特许进程各自改变生命周期提前寄存器121和/或生命周期回滚寄存器122中的单个对应位的值。换言之,例如,为了改变生命周期提前寄存器121或生命周期回滚寄存器122中的特定位,将需要从对应的系统授权进程(例如,根进程)获取授权。因此,在这一示例中,设备可以具有这些“根”授权实体中的上至十六(16)个。
32.当希望给予设备一组临时的加密密钥160时,生命周期提前寄存器121可以被递增(或者以其他方式使得一次性可编程位被改变)。例如,当用户将设备发送给oem以用于调试/诊断时,用户可以控制设备递增生命周期提前寄存器121。因此,oem将不会接收或者不能经济地发现设备在递增生命周期提前寄存器121之前正在使用的密钥160的集合。相反,oem将能够获取从新的生命周期状态值135产生的临时密钥160(其从改变的生命周期提前值125产生)。
33.当oem将设备返回给用户时,用户可以通过在生命周期回滚寄存器122中递增(或改变适当的一次性可编程位)来恢复原始密钥160。因此,递增生命周期提前寄存器121导致临时密钥160被产生,并且递增生命周期回滚寄存器122取消该效果并且导致原始密钥160被产生。生命周期值生成器130被配置为使得被存储在生命周期回滚寄存器122中的某些值取消被存储在生命周期提前寄存器121中的某些值(例如,相等的值)的效果。生命周期值生成器130可以被配置为使得可以选择其他配对,由此选择的生命周期回滚值126取消对应的生命周期提前值125的效果。
34.在一个实施例中,对生命周期提前寄存器121的改变可以被混合。例如,用户#1可以递增生命周期提前寄存器121以使用临时密钥160的第一集合,则用户#2可以递增生命周期提前寄存器121以使用临时密钥160的第二集合。用户#2(或用户#1)然后可以递增生命周期回滚寄存器122以返回到使用临时密钥的第一集合。生命周期回滚寄存器1可以再次递增以返回到使用原始密钥160。
35.由于otp存储器(并且因此生命周期提前寄存器121和生命周期回滚寄存器122)的位仅可以被改变一次,所以当生命周期提前寄存器121或生命周期回滚寄存器122的所有位已经被改变(例如,对于值0xffffh被设置为“1”)时,试图进一步改变生命周期提前寄存器121和生命周期回滚寄存器122的值可能导致发信号通知错误。
36.图2是示出了生成依赖于生命周期状态的加密密钥的方法的流程图。图2所示的步骤可以由系统100的一个或多个元件执行。向设备配置经由软件不可访问的秘密密钥(202)。例如,系统100可以被配置有用于向单向函数140提供秘密密钥值175的秘密密钥170。设备被配置为使得秘密密钥170(并且因此秘密密钥值175)不能被在设备上运行的软件读取或写入。
37.向一次性可编程(otp)存储器配置初始值(204)。例如,otp存储器120(并且因此特别地是生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123)可以被配置有只能被改变一次的初始值。例如,当otp存储器120由融合位构成时,易熔链路的初始(即,完整或未熔断)状态确定由otp存储器120(并且因此特别地是生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123)存储的初始值。在另一示例中,如果otp存储器120包括安全闪存存储器(或被配置为仅被编程一次的某个其他非易失性存储器)的区域,则由otp存储器120(并且因此特别地是生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123)存储的初始值可以由制造方(oem或odm等)编程。
38.从otp存储器接收生命周期提前值(206)。例如,生命周期值生成器130可以从otp存储器120(并且特别地是生命周期提前寄存器121)接收生命周期提前值125。从otp存储器接收生命周期回滚值(208)。例如,生命周期值生成器130可以从otp存储器120(并且特别地是生命周期提前回滚寄存器122)接收生命周期回滚值126。
39.从生命周期提前值和生命周期回滚值生成生命周期状态值(210)。例如,生命周期值生成器130可以使用生命周期状态生成过程、基于生命周期提前值125和生命周期回滚值126来计算生命周期状态值135。示例生命周期状态生成过程可以包括或者是生命周期提前值125和生命周期回滚值126的按位异或(xor),以便产生生命周期状态值135。
40.从otp存储器接收个性值(212)。例如,单向函数140可以从otp存储器120(并且特别地是个性寄存器123)接收个性值127。基于秘密密钥值、个性值和生命周期状态值来生成密钥分割值(214)。例如,单向函数140可以使用秘密密钥值175、生命周期状态值135和个性值127作为单向加扰函数的输入来生成密钥分割值145。示例加扰函数可以包括使用个性值127和/或生命周期状态值135作为密钥树路径,其中秘密密钥值175作为aes密钥(或反之亦然)。
41.从密钥分割值生成加密密钥(216)。例如,密钥融合150可以基于密钥分割值145和基本密钥标识151来生成密钥160。密钥160可以包括例如用于签名的ecc密钥;用于加密/解密的ecc私钥;aes-256设备特定的密钥;和/或aes-128设备特定的密钥。
42.图3是示出了包括密码生命周期管理系统的设备的框图。在图3中,设备300包括生命周期密钥生成器310、处理器390、用户输入391、接口392和测试接口393。生命周期密钥生成器310包括一次性可编程存储器320、生命周期值生成器330、设备生成的一次性可编程密钥分割(dgok)370、密钥分割生成器340、密钥生成器350、otp编程器380和otp读取电路381。应当理解,一次性可编程存储器320可以是例如一次性电可编程半导体存储器(例如,在半导体基底上或使用半导体材料而被制造的)。
43.dgok 370(也被称为秘密密钥)被可操作地耦合到密钥分割生成器340。dgok 370将秘密值存储在硬件中。在一个实施例中,dgok可以被存储在otp存储器320的安全(即,处理器390和/或测试接口393不可访问的)位置。在另一实施例中,dgok 370可以被嵌入设备300的设计(即,网表)或配置中,从而使得dgok 370经由处理器390和/或测试接口393不可访问(即,不能被读取、写入、计算、或以其他方式或被辨别出)。dgok 370向密钥分割生成器340提供秘密值。在一个实施例中,dgok 370向密钥分割生成器340提供256位秘密值。
44.生命周期提前寄存器321被可操作地耦合到生命周期值生成器330。otp存储器320向生命周期值生成器330提供由生命周期提前寄存器321存储的生命周期提前值。生命周期
回滚寄存器322被可操作地耦合到生命周期值生成器330。otp存储器320向生命周期值生成器330提供由生命周期回滚寄存器322存储的生命周期回滚值。
45.生命周期值生成器330从otp存储器320接收生命周期提前值和生命周期回滚值。生命周期值生成器330使用生命周期状态生成过程/函数来处理生命周期提前值和生命周期回滚值。这一生命周期状态生成过程根据其接收到的对应的生命周期提前值和生命周期回滚值来产生生命周期状态值。这些生命周期状态值被提供给密钥分割生成器340。
46.个性寄存器323被可操作地耦合到密钥分割生成器340。个性寄存器323存储个性值。otp存储器320向密钥分割生成器340提供由个性寄存器323存储的个性值。使用otp编程380和otp读取电路381,在设备300上的软件的控制下,处理器390可以读取和写入生命周期提前寄存器321、生命周期回滚寄存器322和个性寄存器323中的一个或多个寄存器的内容。测试接口393还可以被用于读取和写入或者以其他方式获取和/或设置生命周期提前寄存器321、生命周期回滚寄存器322和个性寄存器323中的一个或多个寄存器的内容。
47.密钥分割生成器340使用dgok 370、来自生命周期状态生成器330的生命周期状态值和来自个性寄存器323的个性值来生成密钥分割值。密钥分割生成器340可以通过包括例如使用给定个性值作为密钥树路径并且使用dgok 370作为aes密钥的过程来产生密钥分割值。同样,密钥分割生成器340被用来产生密钥分割值的过程还可以包括使用生命周期状态值作为密钥树路径并且使用先前处理的结果作为aes密钥。其他单向函数/过程可以用于从dgok 370、生命周期状态值和个性值生成密钥分割值。因此,应当理解,给定生命周期状态值或给定个性值之间的任何差异(甚至是一位差异)将导致不同密钥分割值被产生并且被提供给处理器390。另外,如果适当地选择单向函数过程,则从密钥分割值或被提供给处理器390的密钥确定dgok 370应当在经济上是不可行的。同样,从可以由测试接口393访问或控制的任何数据和/或电路确定dgok 370应当在经济上也是不可行的。
48.由密钥分割生成器340输出的密钥分割值被提供给密钥生成器350。基于密钥分割值和基本密钥标识值,密钥生成器350产生用于由处理器390在加密操作中使用的加密密钥。这些加密操作可以包括例如用于签名(即,认证)的椭圆曲线密码(ecc)、ecc加密和/或解密、aes-256加密和/或解密和/或aes-128加密和/或解密。被用于其他用途的其他加密操作也可以由密钥生成器350从密钥分割值产生。
49.处理器390被可操作地耦合到生命周期密钥生成器310。处理器390被可操作地耦合到生命周期密钥生成器310,以至少控制由生命周期密钥生成器310对密钥的生成。处理器390被可操作地耦合到生命周期密钥生成器310的密钥生成器350,以接收已经由密钥生成器350生成的密钥。处理器390被可操作地耦合到生命周期密钥生成器310的otp存储器320,以读取和写入由otp存储器320存储的值。特别地,处理器390被可操作地耦合到otp存储器320以便读取和写入生命周期提前寄存器321、生命周期回滚寄存器322和个性寄存器323。测试接口393被可操作地耦合到处理器390和生命周期密钥生成器310以控制和测试电路。测试接口393可以是或者包括例如用于边界扫描和其他串行测试/访问操作的测试访问端口(tap)。
50.设备300可以经历各种生命周期。通过改变生命周期提前寄存器321和个性寄存器323中的值,由生命周期密钥生成器310产生的、由处理器390使用和/或经由测试接口393可访问的密钥可以被改变。通过改变由处理器390使用的密钥,与设备300相关联的数据(和/
或认证和/或授权)被保护免于未经授权的使用/访问。同样,通过改变由测试接口393可访问的密钥,与设备300相关联的数据(和/或认证和/或授权)被保护免于未经授权的使用/访问。
51.在操作期间,响应于经由用户接口391和/或接口392而被接收的命令,个性寄存器323的位可以由处理器390连续(并且永久地)改变。对个性寄存器323的这些改变可以采用温度计编码的计数器的方式。由于对个性寄存器323的改变是永久且不可逆的,因此当个性寄存器323中的值被改变时,由生命周期密钥生成器310产生的密钥被永久地改变。
52.在操作期间,响应于经由用户接口391和/或接口392而被接收的命令,生命周期提前寄存器321的位可以由处理器390连续(并且永久地)改变。对生命周期提前寄存器321的这些改变可以采用温度计编码的计数器的方式。对生命周期提前寄存器321的改变是永久且不可逆的。然而,对生命周期提前寄存器321的改变的影响可以通过对生命周期回滚寄存器322的相应改变而被撤消。因此,导致生命周期密钥生成器310产生临时密钥的、对生命周期提前寄存器321的改变可以通过对生命周期回滚寄存器322的适当改变而被取消。取消对生命周期提前寄存器321的改变的影响的、对生命周期回滚寄存器322的改变由生命周期值生成器330确定。换言之,由生命周期值生成器330实现的生命周期值生成过程被配置为使得生命周期回滚寄存器322中的某些值取消生命周期提前寄存器321中的某些值的效果。
53.例如,如果生命周期值生成过程是生命周期回滚寄存器322与生命周期提前寄存器321之间的按位xor操作,则只要生命周期回滚寄存器322和生命周期提前寄存器321相等(例如,都是0x0000h、0x00ffh等),相同的作为结果的生命周期状态值(例如,0x0000h)就将被提供给密钥分割生成器340,从而导致生命周期密钥生成器310向处理器390提供密钥的相同集合。如果生命周期回滚寄存器322和生命周期提前寄存器321不相等,则不同的生命周期状态值将被提供给密钥分割生成器340,从而导致生命周期密钥生成器310向处理器390提供密钥的相应的不同的集合。
54.为了说明,考虑其中生命周期值生成过程是生命周期回滚寄存器322与生命周期提前寄存器321之间的按位xor操作的上述示例。如果生命周期提前寄存器321是0x00ffh,并且生命周期回滚寄存器322是0x007fh,则生命周期状态生成器将向密钥分割生成器340提供值0x0080h。由于0x0080h不等于0x000h,并且密钥分割生成器340实现取决于包括生命周期状态值在内的所有输入值的单向函数,所以由密钥分割生成器340产生的密钥分割值(以及因此由生命周期密钥生成器310产生的密钥)将不同。
55.在另一示例中,如果生命周期提前寄存器321是从0x00ffh递增到0x01ffh的温度计码,并且生命周期回滚寄存器322也是从0x007fh递增到0x00ff的温度计码,则生命周期状态生成器将向密钥分割生成器340提供值0x00100。由于0x00100h(当前生命周期状态值)不等于0x0080h(先前的生命周期状态值),所以由密钥分割生成器340产生的密钥分割值(以及因此由生命周期密钥生成器产生的密钥)将不同于预增量值,尽管这两个值都表示生命周期状态的单个增量。
56.因此,应当理解,生命周期值生成器330被配置为使得被存储在生命周期回滚寄存器322中的某些(但不是全部)值取消被存储在生命周期提前寄存器321中的某些相应值的效果。在其他实施例中,生命周期值生成器330可以被配置为使得生命周期提前值和生命周期回滚值的任意配对取消(或不能撤消)对应的生命周期提前值的效果。
57.图4a和图4b是示出了配置和解除配置密码管理的生命周期状态的方法的流程图。图4a和图4b中的步骤可以由系统100和/或设备300的一个或多个元件执行。从第一生命周期提前值和第一生命周期回滚值生成第一生命周期状态值(402)。例如,密钥状态生成器330可以从生命周期提前寄存器321和生命周期回滚寄存器322的内容生成第一生命周期状态值。这一第一生命周期状态值被提供给密钥分割生成器340。
58.基于第一生命周期状态值、个性值和秘密密钥值来生成第一密钥分割值(404)。例如,密钥分割生成器340可以生成被提供给密钥生成器350的第一密钥分割值。这一第一密钥分割值可以是将来自生命周期状态生成器330的第一生命周期状态值、个性寄存器323的内容和dgok 370作为输入来产生密钥分割值的单向函数的结果。基于第一密钥分割值来生成(多个)第一密钥(406)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第一密钥分割值来生成一个或多个密钥。
59.改变第一生命周期提前位的值以产生第二生命周期提前值(408)。例如,处理器390可以控制otp编程380以改变生命周期提前寄存器321中的位的值。处理器390可以控制otp编程380以响应于用户输入391和/或经由接口392而被接收的命令(例如,经由无线接口而被接收的命令)来改变生命周期提前寄存器321中的位的值。
60.从第二生命周期提前值和第一生命周期回滚值生成第二生命周期状态值(410)。例如,密钥状态生成器330可以从生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的未改变的内容生成第二生命周期状态值。这一第二生命周期状态值被提供给密钥分割生成器340。
61.基于第二生命周期状态值、个性值和秘密密钥来值生成第二密钥分割值(412)。例如,密钥分割生成器340可以生成被提供给密钥生成器350的第二密钥分割值。这一第二密钥分割值可以是将来自生命周期状态生成器330的第二生命周期状态值、个性寄存器323的内容和dgok 370作为输入来产生第二密钥分割值的单向函数的结果。基于第二密钥分割值来生成第二密钥(414)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第二密钥分割值来生成一个或多个密钥。
62.改变第一生命周期回滚位的值以产生第二生命周期回滚值(416)。例如,处理器390可以控制otp编程380以改变生命周期回滚寄存器322中的位的值。处理器390可以控制otp编程380以响应于用户输入391和/或经由接口392而被接收的命令(例如,经由无线接口而被接收的命令)来改变生命周期回滚寄存器322中的位的值。
63.从第二生命周期提前值和第二生命周期回滚值生成第一生命周期状态值(418)。例如,密钥状态生成器330可以从生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的改变的内容生成第一生命周期状态值。这一第一生命周期状态值被提供给密钥分割生成器340。
64.基于个性值、秘密密钥值以及从第二生命周期提前值和第二生命周期回滚值生成的第一生命周期状态值来生成第一密钥分割值(420)。例如,密钥分割生成器340可以生成第一密钥分割值,作为将来自生命周期状态生成器330的第一生命周期状态值(如通过生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的改变的内容所生成的)、个性寄存器323的内容和dgok 370作为输入的单向函数的结果。基于从第一生命周期状态值(其又是从第二生命周期提前值和第二生命周期回滚值生成的)生成的第一密钥分割值来
生成第一密钥(422)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第一密钥分割值来生成一个或多个密钥,其中第一密钥分割值是从生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的改变的内容生成的。
65.图5a至图5c示出了示例生命周期状态生成过程。图5a至图5c中所示的过程可以由系统100和/或设备300的一个或多个元件(例如,生命周期状态生成器330)执行。图5a将第一生命周期提前值515示出为二进制位1000b。第一生命周期回滚值516也被示出为二进制位1000b。第一生命周期提前值515和第一生命周期回滚值516被输入到生命周期状态生成函数f(a,r)530,其中a表示与生命周期提前值对应的输入参数,并且r表示与生命周期回滚值对应的输入参数。生命周期状态生成函数530的输出是第一生命周期状态值517。在图5a中,响应于第一生命周期提前值515和第一生命周期回滚值516的生命周期状态生成函数530的输出是二进制位0000b。
66.图5b将第二生命周期提前值525示出为二进制位1100b。第一生命周期回滚值516在图5b中被示出为二进制位1000b。第二生命周期提前值525和第一生命周期回滚值516被输入到生命周期状态生成函数530。生命周期状态生成函数530的输出是第二生命周期状态值527。在图5b中,响应于第二生命周期提前值525和第一生命周期回滚值516的生命周期状态生成函数530的输出是二进制位0100b。
67.图5c将第二生命周期提前值525示出为二进制位1100b。第二生命周期回滚值526在图5c中被示出为二进制位1100b。第二生命周期提前值525和第一生命周期回滚值526被输入到生命周期状态生成函数530。生命周期状态生成函数530的输出是第一生命周期状态值517。在图5c中,响应于第二生命周期提前值525和第二生命周期回滚值526的生命周期状态生成函数530的输出是二进制位0000b。因此,应当理解,图5a至图5c中所示的生命周期状态生成函数530是按位xor操作(即,)。还应当理解,其他生命周期状态生成函数530可以包括其他功能,包括产生用于多个映射的相同输出生命周期状态值的生命周期提前值和对应的生命周期回滚值的任意映射。
68.图6是示出了生成依赖于生命周期的加密密钥的方法的流程图。图6中所示的步骤可以由系统100和/或设备300的一个或多个元件执行。从生命周期提前值和生命周期回滚值生成生命周期状态值(602)。例如,生命周期状态生成器330可以从生命周期提前寄存器321的内容和生命周期回滚寄存器322的内容计算生命周期状态值。
69.生成基于生命周期状态值、秘密密钥值和第一个性值的第一密钥分割值(604)。例如,密钥分割生成器340可以基于生命周期状态值、个性寄存器323的内容和dgok值370来计算第一密钥分割值。这一第一密钥分割值可以被提供给密钥生成器350。
70.基于第一密钥分割值来生成第一密钥(606)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第一密钥分割值来生成第一密钥。这一第一密钥可以被提供给处理器390以用于在加密操作中使用。
71.改变个性位的值以产生第二个性值(608)。例如,处理器390可以控制otp编程380以改变个性寄存器323中的至少一个位的值。处理器390可以控制otp编程380以响应于用户输入391和/或经由接口392而被接收的命令(例如,经由无线接口而被接收的命令)来改变个性寄存器323中的位的值。
72.生成基于生命周期状态值、秘密密钥值和第二个性值的第二密钥分割值(610)。例如,密钥分割生成器340可以基于生命周期状态值、个性寄存器323的改变的内容和dgok值370来计算第二密钥分割值。这一第二密钥分割值可以被提供给密钥生成器350。
73.基于第二密钥分割值来生成第二密钥(612)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第二密钥分割值来生成第二密钥。这一第二密钥可以被提供给处理器390以用于在加密操作中使用。应当理解,由于对个性寄存器323的改变是永久且不可逆的,所以在个性寄存器323中的位被改变之后由生命周期密钥生成器310产生的密钥被永久地改变。
74.图7是示出了可访问密钥分割值的生成的示图。图7中所示的功能可以特别地由系统100和/或系统300的一个或多个元件和密钥分割生成器340实现。在图7中,dgok值775和个性值727被输入到第一加扰(例如,单向)函数741——f1(p,d),其中p表示个性值并且d表示dgok(秘密密钥)值。例如,dgok值370和个性寄存器323可以向密钥分割生成器340提供输入。密钥分割生成器340可以使用dgok值370和个性寄存器323的内容来实现第一加扰函数。例如,这一第一加扰函数可以包括使用个性寄存器323的内容作为密钥树路径并且使用dgok值作为aes密钥。
75.生命周期提前值725和生命周期回滚值726被输入到按位异或(xor)函数730以产生生命周期状态值。生命周期状态值和来自第一加扰函数的输出被输入到第二加扰函数742——f2(l,f1),其中l表示生命周期状态值并且f1表示第一加扰函数的输出。第二加扰函数的输出是设备生成的可访问密钥分割(dgak),例如密钥分割145。
76.上述方法、系统和设备可以在计算机系统中被实现,或者由计算机系统存储。上述方法也可以被存储在非暂态计算机可读介质上。本文中描述的设备、电路和系统可以使用本领域中可用的计算机辅助设计工具而被实现,并且通过包含这样的电路的软件描述的计算机可读文件而被实施。这包括但不限于系统100、设备300及其组件的一个或多个元件。这些软件描述可以是:行为、寄存器传输、逻辑组件、晶体管和布局几何级描述。此外,软件描述可以存储在存储介质上或通过载波来传送。
77.其中可以实现这样的描述的数据格式包括但不限于:支持如c的行为语言的格式、支持如verilog和vhdl的寄存器传输级(rtl)语言的格式、支持几何描述语言(诸如gdsii、gdsiii、gdsiv、cif和mebes)的格式以及其他合适的格式和语言。此外,机器可读介质上的这样的文件的数据传输可以通过因特网上的不同介质被电子地完成,或者例如经由电子邮件而被完成。注意,物理文件可以在机器可读介质上被实现,诸如:4毫米磁带、8毫米磁带、3-1/2英寸软盘介质、cd、dvd等。
78.图8是示出了用于包括、处理或生成电路组件820的表示的处理系统800的一个实施例的框图。处理系统800包括一个或多个处理器802、存储器804以及一个或多个通信设备806。处理器802、存储器804和通信设备806使用任何合适类型、数目和/或配置的有线和/或无线连接808通信。
79.处理器802执行被存储在存储器804中的一个或多个过程812的指令以响应于用户输入814和参数816来处理和/或生成电路组件820。过程812可以是用于设计、模拟、分析和/或验证电子电路和/或生成用于电子电路的光掩模的任何合适的电子设计自动化(eda)工具或它的部分。表示820包括描述系统100、设备300及其组件的全部或部分的数据,如图中
所示。
80.表示820可以包括行为、寄存器传送、逻辑组件、晶体管和布局几何级描述中的一种或多种。此外,表示820可以被存储在存储介质上或通过载波而被传送。
81.可以实现表示820的数据格式包括但不限于:支持如c的行为语言的格式、支持如verilog和vhdl的寄存器传输级(rtl)语言的格式、支持几何描述语言(诸如gdsii、gdsiii、gdsiv、cif和mebes)的格式以及其他合适的格式和语言。此外,机器可读介质上的这样的文件的数据传输可以通过因特网上的不同介质被电子地完成,或者例如经由电子邮件而被完成。
82.用户输入814可以包括来自键盘、鼠标、语音识别接口、麦克风和扬声器、图形显示器、触摸屏或其他类型的用户接口设备的输入参数。这一用户接口可以被分布在多个接口设备中。参数816可以包括被输入以帮助定义表示820的规格和/或特性。例如,参数816可以包括定义设备类型(例如,nfet、pfet等)、拓扑(例如,框图、电路描述、图表等)和/或设备描述(例如,设备属性、设备尺寸、电源电压、模拟温度、仿真模型等)的信息。
83.存储器804包括存储过程812、用户输入814、参数816和电路组件820的任何合适的类型、数目和/或配置的非暂态计算机可读存储介质。
84.通信设备806包括从处理系统800向另一处理或存储系统(未示出)传输信息和/或从另一处理或存储系统(未示出)接收信息的任何合适类型、数目和/或配置的有线和/或无线设备。例如,通信设备806可以将电路组件820传输到另一系统。通信设备806可以接收过程812、用户输入814、参数816和/或电路组件820,并且引起过程812、用户输入814、参数816和/或电路组件820被存储在存储器804中。
85.已经出于说明和描述的目的而呈现了本发明的以上描述。并非旨在穷尽本发明或将本发明限制为所公开的精确形式,并且根据上述教导,其他修改和改变也是可能的。选择并且描述实施例是为了最好地解释本发明的原理及其实际应用,从而使得本领域其他技术人员能够以适合于预期的特定用途的各种实施例和各种修改来最佳地利用本发明。旨在于将所附权利要求解释为包括除了现有技术所限制的范围之外的本发明的其他备选实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献