CN108370310B - 生成加密密钥的方法、集成电路和计算机可读介质 - Google Patents

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

Info

Publication number
CN108370310B
CN108370310B CN201680072688.1A CN201680072688A CN108370310B CN 108370310 B CN108370310 B CN 108370310B CN 201680072688 A CN201680072688 A CN 201680072688A CN 108370310 B CN108370310 B CN 108370310B
Authority
CN
China
Prior art keywords
value
lifecycle
key
life cycle
rollback
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.)
Active
Application number
CN201680072688.1A
Other languages
English (en)
Other versions
CN108370310A (zh
Inventor
A·库马
R·佩瑞兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cryptography Research Inc
Original Assignee
Cryptography Research Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cryptography Research Inc filed Critical Cryptography Research Inc
Priority to CN202111457136.1A priority Critical patent/CN114157422A/zh
Publication of CN108370310A publication Critical patent/CN108370310A/zh
Application granted granted Critical
Publication of CN108370310B publication Critical patent/CN108370310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

软件不可访问的秘密密钥值根据由一次性可编程(OTP)位组成的寄存器被加扰。第一OTP寄存器被用于在生命周期事件发生时改变秘密密钥值的加扰。第二OTP寄存器被用于取消秘密密钥的加扰的改变。第三OTP寄存器被用于影响对秘密密钥的加扰的永久改变。秘密密钥的加扰的值(无论是改变的还是未改变的)被用作种子以产生用于由设备进行的加密操作的密钥。

Description

生成加密密钥的方法、集成电路和计算机可读介质
相关申请的交叉引用
本申请要求于2015年12月6日提交的、名称为“CRYPTOGRAPHIC MANAGEMENT OFLIFECYCLE STATES”的美国临时专利申请序列号62/268,018的权益,其出于所有目的通过引用并入本文。
技术领域
本公开的实施例一般地涉及计算机技术领域,并且更特别地涉及一种生成加密密钥的方法、集成电路和计算机可读介质。
背景技术
很多电子设备(例如,蜂窝电话、平板计算机、机顶盒等)使用安全加密密钥。例如,这些密钥可以被用于保护设备上的数据,保护通信,和/或验证设备。当设备经历各种生命周期事件时,希望保护由设备使用的密钥免于泄露(从而保护设备上的数据,防止未经授权的使用,等等)。
例如,最终用户在使用设备一段时间并且在其中存储敏感数据之后可能会遇到需要将设备送回制造方以用于修理的问题。在这种情况中,最终用户不希望制造方或维修中心访问被存储在设备上的敏感数据。但是,最终用户还希望在设备被返回时这些数据对于他们可访问。
发明内容
在第一方面,提供了一种生成加密密钥的方法。该方法包括:向具有电路的半导体设备配置秘密密钥值,秘密密钥值对于在设备上运行的软件不可访问;向一次性电可编程半导体存储器位配置初始值,每个一次性电可编程半导体存储器位被限制为值从相应初始值的一次改变;从由一次性电可编程半导体存储器位的第一子集存储的生命周期提前位接收第一生命周期提前值;从由一次性电可编程半导体存储器位的第二子集存储的生命周期回滚位接收第一生命周期回滚值;使用生命周期状态生成过程从第一生命周期提前值和第一生命周期回滚值生成第一生命周期状态值;从由一次性电可编程半导体存储器位的第三子集存储的个性位接收第一个性值;使用单向处理函数,基于秘密密钥值、第一个性值和第一生命周期状态值来生成第一密钥分割值;以及从第一密钥分割值生成第一加密密钥。
在第二方面,提供了一种集成电路。该集成电路包括:用来提供秘密密钥值的电路,秘密密钥值对于控制集成电路的软件不可访问;一次性可编程存储器位,每个一次性可编程存储器位被限制为值从相应初始值的一次改变,一次性可编程存储器位包括由一次性可编程存储器位的第一子集存储的生命周期提前位、由一次性可编程存储器位的第二子集存储的生命周期回滚位以及由一次性可编程存储器位的第三子集存储的个性位;生命周期值生成电路,其被配置为使用生命周期值生成过程从由生命周期提前位存储的生命周期提前值和由生命周期回滚位存储的生命周期回滚值生成生命周期值;单向函数电路,其用来使用单向处理函数基于个性位值、生命周期值和秘密密钥值来生成密钥分割值;以及,密钥融合电路,其用来基于密钥分割值来生成多个加密密钥值。
在第三方面,提供了一种存储电路组件的表示的计算机可读介质。电路组件包括:用来提供秘密密钥值的电路,秘密密钥值对于控制集成电路的软件不可访问;一次性可编程存储器位,每个一次性可编程存储器位被限制为值从相应初始值的一次改变,一次性可编程存储器位包括由一次性可编程存储器位的第一子集存储的生命周期提前位、由一次性可编程存储器位的第二子集存储的生命周期回滚位以及由一次性可编程存储器位的第三子集存储的个性位;生命周期值生成电路,其用来使用生命周期值生成过程从由生命周期提前位存储的生命周期提前值和由生命周期回滚位存储的生命周期回滚值生成生命周期值,生命周期值包括从第一生命周期提前值和第一生命周期回滚值生成的第一生命周期状态值;单向函数电路,其用来使用单向处理函数基于个性位值、生命周期值和秘密密钥值来生成密钥分割值,密钥分割值包括基于秘密密钥值、第一个性值和第一生命周期状态值的第一密钥分割值;以及密钥融合电路,其用来基于密钥分割值来生成多个加密密钥值,多个加密密钥值包括从第一密钥分割值生成的第一加密密钥。
附图说明
图1是示出了生命周期管理系统的框图。
图2是示出了生成依赖于生命周期状态的加密密钥的方法的流程图。
图3是示出了包括密码生命周期管理系统的设备的框图。
图4A和图4B是示出了配置和解除配置密码管理的生命周期状态的方法的流程图。
图5A至图5C示出了示例生命周期状态生成过程。
图6是示出了生成依赖于生命周期的加密密钥的方法的流程图。
图7是示出了可访问密钥分割值的生成的示图。
图8是处理系统的框图。
具体实施方式
在一个实施例中,软件不可访问(例如,硬连线到设备中)的秘密密钥值根据由一次性可编程位组成的寄存器被加扰。这些一次性可编程(OTP)位通过硬件设计仅能够从其初始值改变为另一值一次,并且不能被返回到初始值(例如,反映片上保险丝是已经被熔断还是仍然完好无损的位)。
每当生命周期事件发生(例如,设备被发送到修理中心)时,OTP寄存器中的第一OTP寄存器被用于改变秘密密钥值的加扰。通过改变秘密密钥值的加扰,由设备使用的密钥也被改变,从而防止由设备先前使用的数据、授权或认证被复制或使用(例如,由维修中心员工)。
OTP寄存器中的第二OTP寄存器被用于取消对秘密密钥的加扰的改变。因此,第二OTP寄存器可以将由设备使用的密钥“恢复”到其预先的生命周期事件值,从而恢复用来使用在生命周期事件之前被使用的数据、授权和/或认证的能力。
OTP寄存器中的第三OTP寄存器被用于影响对秘密密钥的加扰的永久改变,从而永久地防止数据、授权或认证被访问或使用。例如,当用户销售设备并且因此不希望新的所有者读取先前的所有者数据,或者使用与先前的所有者相关联的授权和认证时,可以使用这一寄存器中的位。
图1是示出了生命周期管理系统的框图。在图1中,系统100包括一次性可编程(OTP)存储器120、生命周期值生成器130、单向函数140、密钥融合150、秘密密钥170和OTP编程电路180。OTP存储器120包括生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123。
OTP存储器120可以是例如一次性电可编程半导体存储器(例如,在半导体基底上或使用半导体材料而被制造)。由OTP存储器120存储的位通过硬件设计仅能够从其初始值被改变为另一值一次。由OTP存储器120存储的位一旦从初始值被电改变,就不能被返回到其初始值。例如,包括OTP存储器120的位可以被实现为“融合”位。这些熔合位一旦被改变(即,熔断)就经历不可逆的物理过程(例如,导电元件的破坏),并且因此不能被改回到它们的初始状态。
OTP编程电路180被可操作地耦合到OTP存储器120。OTP编程电路180被可操作地耦合到OTP存储器120以对OTP存储器120中的位编程(例如,熔断保险丝以改变生命周期提前寄存器121、生命周期回滚122寄存器、个性寄存器123等的值)。OTP编程电路180可以被控制以通过在包括系统100的设备上运行的处理器和/或软件(图1中未示出)来改变OTP存储器120中的位。这一处理器和/或软件可以响应于设备的用户的命令来改变OTP存储器120中的位。
秘密密钥170被可操作地耦合到单向函数140。秘密密钥170(也被称为设备生成的一次性可编程密钥分割-DGOK)将秘密密钥值175存储在硬件中。秘密密钥170向单向函数140提供秘密密钥值175。秘密密钥170可以例如被嵌入在设备的网表、安全闪存的区域或某个其他非易失性形式/电路中。在一个实施例中,秘密密钥170存储256位秘密密钥值175。
生命周期提前寄存器121被可操作地耦合到生命周期值生成器130。生命周期提前寄存器121存储生命周期提前值125。OTP存储器120向生命周期值生成器130提供由生命周期提前寄存器121存储的生命周期提前值125。生命周期回滚寄存器122被可操作地耦合到生命周期值生成器130。生命周期回滚寄存器122存储生命周期回滚值126。OTP存储器120向生命周期值生成器130提供由生命周期回滚寄存器122存储的生命周期回滚值126。
生命周期值生成器130从OTP存储器120接收生命周期提前值125和生命周期回滚值126。生命周期值生成器130产生生命周期状态值135。生命周期值生成器130使用生命周期状态生成过程/函数来处理生命周期提前值125和生命周期回滚值126。这一生命周期状态生成过程从生命周期提前值125和生命周期回滚值126产生生命周期状态值135。生命周期状态值135被提供给单向函数140。
个性寄存器123被可操作地耦合到单向函数140。个性寄存器123存储个性值127。OTP存储器120向单向函数140提供由个性寄存器123存储的个性值127。在一些实施例中,具有系统100的设备上的处理器和/或软件可以能够从OTP存储器120读取生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123中的一个或多个寄存器的内容,或者以其他方式获取生命周期提前值125、生命周期回滚值126或个性值127中的一个或多个值。
单向函数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已知时。
密钥分割值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产生。
在一个实施例中,具有系统100的设备可以经历各种生命周期。这些生命周期可能需要保护和/或改变密钥160的愿望。例如,在秘密密钥170已经被调配(provision)有了秘密密钥值175之后,设备可以经受实验室调试或硅调试。这可以例如在封装之后发生,设备和/或IC保持系统100回到供应商以用于初始调试和分类。在另一示例中,设备可以由用户在现场使用,并且然后被发送回OEM、ODM、维修店或芯片供应商以用于故障分析。当设备的故障被修复时,设备可以被运回给最终用户。在这种情况中,希望设备提供与发送设备以用于修复之前可用的功能相同的功能(和存储的数据)。在另一示例中,最终用户可以将设备出售给另一用户。在这种情况中,第一用户可能不想将他们的密钥(以及他们的数据)泄露给第二用户。
在一个实施例中,个性寄存器123被配置有初始值,例如十六(16)位零值(即,0x0000h)。在操作期间,个性寄存器123的位可以由OTP编程180以温度计编码的计数器的方式来连续地改变。由OTP编程180对个性寄存器123中的位值的这种改变可以由在设备上运行的特权进程(例如,操作系统)控制。由于OTP存储器(并且因此个性寄存器123)的位只能被改变一次,所以当个性寄存器123的所有位已经被改变(例如,对于值0xFFFFh被设置为“1”)时,试图进一步改变个性寄存器123的值可能导致发信号通知错误。
在一个示例中,设备的用户可以在放弃对设备的占有(例如,向新所有者)之前使个性寄存器123被递增(或以其他方式改变个性寄存器123中的至少一个位)。在另一示例中,在将设备发送给OEM之前,ODM可以递增(或以其他方式改变个性寄存器123中的至少一个位)。这确保不会“留下”任何秘密被ODM发现。在这些示例中,用户和/或ODM可以读取个性寄存器123的内容以确保系统100将生成与在改变个性寄存器123的内容之前生成的加密密钥160不同的加密密钥160。
在一个实施例中,生命周期提前寄存器121被配置有初始值,例如十六(16)位零值(即,0x0000h)。同样,生命周期回滚寄存器122被配置有初始值,例如十六(16)位零值(即,0x000h)。在操作期间,生命周期提前寄存器121的位和生命周期回滚寄存器122的位可以由OTP编程180以温度计编码的计数器的方式连续地并且独立地改变。
由OTP编程180对生命周期提前寄存器121的内容和生命周期回滚寄存器122的内容的改变可以由在设备上运行的特许进程(例如,操作系统)控制。由OTP编程180对生命周期提前寄存器121中的各个位值和生命周期回滚寄存器122的位的改变可以由在设备上运行的相应特许进程控制。例如,对于16位生命周期提前寄存器121和16位生命周期回滚寄存器122,只允许上至16个特许进程各自改变生命周期提前寄存器121和/或生命周期回滚寄存器122中的单个对应位的值。换言之,例如,为了改变生命周期提前寄存器121或生命周期回滚寄存器122中的特定位,将需要从对应的系统授权进程(例如,根进程)获取授权。因此,在这一示例中,设备可以具有这些“根”授权实体中的上至十六(16)个。
当希望给予设备一组临时的加密密钥160时,生命周期提前寄存器121可以被递增(或者以其他方式使得一次性可编程位被改变)。例如,当用户将设备发送给OEM以用于调试/诊断时,用户可以控制设备递增生命周期提前寄存器121。因此,OEM将不会接收或者不能经济地发现设备在递增生命周期提前寄存器121之前正在使用的密钥160的集合。相反,OEM将能够获取从新的生命周期状态值135产生的临时密钥160(其从改变的生命周期提前值125产生)。
当OEM将设备返回给用户时,用户可以通过在生命周期回滚寄存器122中递增(或改变适当的一次性可编程位)来恢复原始密钥160。因此,递增生命周期提前寄存器121导致临时密钥160被产生,并且递增生命周期回滚寄存器122取消该效果并且导致原始密钥160被产生。生命周期值生成器130被配置为使得被存储在生命周期回滚寄存器122中的某些值取消被存储在生命周期提前寄存器121中的某些值(例如,相等的值)的效果。生命周期值生成器130可以被配置为使得可以选择其他配对,由此选择的生命周期回滚值126取消对应的生命周期提前值125的效果。
在一个实施例中,对生命周期提前寄存器121的改变可以被混合。例如,用户#1可以递增生命周期提前寄存器121以使用临时密钥160的第一集合,则用户#2可以递增生命周期提前寄存器121以使用临时密钥160的第二集合。用户#2(或用户#1)然后可以递增生命周期回滚寄存器122以返回到使用临时密钥的第一集合。生命周期回滚寄存器1可以再次递增以返回到使用原始密钥160。
由于OTP存储器(并且因此生命周期提前寄存器121和生命周期回滚寄存器122)的位仅可以被改变一次,所以当生命周期提前寄存器121或生命周期回滚寄存器122的所有位已经被改变(例如,对于值0xFFFFh被设置为“1”)时,试图进一步改变生命周期提前寄存器121和生命周期回滚寄存器122的值可能导致发信号通知错误。
图2是示出了生成依赖于生命周期状态的加密密钥的方法的流程图。图2所示的步骤可以由系统100的一个或多个元件执行。向设备配置经由软件不可访问的秘密密钥(202)。例如,系统100可以被配置有用于向单向函数140提供秘密密钥值175的秘密密钥170。设备被配置为使得秘密密钥170(并且因此秘密密钥值175)不能被在设备上运行的软件读取或写入。
向一次性可编程(OTP)存储器配置初始值(204)。例如,OTP存储器120(并且因此特别地是生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123)可以被配置有只能被改变一次的初始值。例如,当OTP存储器120由融合位构成时,易熔链路的初始(即,完整或未熔断)状态确定由OTP存储器120(并且因此特别地是生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123)存储的初始值。在另一示例中,如果OTP存储器120包括安全闪存存储器(或被配置为仅被编程一次的某个其他非易失性存储器)的区域,则由OTP存储器120(并且因此特别地是生命周期提前寄存器121、生命周期回滚寄存器122和个性寄存器123)存储的初始值可以由制造方(OEM或ODM等)编程。
从OTP存储器接收生命周期提前值(206)。例如,生命周期值生成器130可以从OTP存储器120(并且特别地是生命周期提前寄存器121)接收生命周期提前值125。从OTP存储器接收生命周期回滚值(208)。例如,生命周期值生成器130可以从OTP存储器120(并且特别地是生命周期提前回滚寄存器122)接收生命周期回滚值126。
从生命周期提前值和生命周期回滚值生成生命周期状态值(210)。例如,生命周期值生成器130可以使用生命周期状态生成过程、基于生命周期提前值125和生命周期回滚值126来计算生命周期状态值135。示例生命周期状态生成过程可以包括或者是生命周期提前值125和生命周期回滚值126的按位异或(XOR),以便产生生命周期状态值135。
从OTP存储器接收个性值(212)。例如,单向函数140可以从OTP存储器120(并且特别地是个性寄存器123)接收个性值127。基于秘密密钥值、个性值和生命周期状态值来生成密钥分割值(214)。例如,单向函数140可以使用秘密密钥值175、生命周期状态值135和个性值127作为单向加扰函数的输入来生成密钥分割值145。示例加扰函数可以包括使用个性值127和/或生命周期状态值135作为密钥树路径,其中秘密密钥值175作为AES密钥(或反之亦然)。
从密钥分割值生成加密密钥(216)。例如,密钥融合150可以基于密钥分割值145和基本密钥标识151来生成密钥160。密钥160可以包括例如用于签名的ECC密钥;用于加密/解密的ECC私钥;AES-256设备特定的密钥;和/或AES-128设备特定的密钥。
图3是示出了包括密码生命周期管理系统的设备的框图。在图3中,设备300包括生命周期密钥生成器310、处理器390、用户输入391、接口392和测试接口393。生命周期密钥生成器310包括一次性可编程存储器320、生命周期值生成器330、设备生成的一次性可编程密钥分割(DGOK)370、密钥分割生成器340、密钥生成器350、OTP编程器380和OTP读取电路381。应当理解,一次性可编程存储器320可以是例如一次性电可编程半导体存储器(例如,在半导体基底上或使用半导体材料而被制造的)。
DGOK 370(也被称为秘密密钥)被可操作地耦合到密钥分割生成器340。DGOK 370将秘密值存储在硬件中。在一个实施例中,DGOK可以被存储在OTP存储器320的安全(即,处理器390和/或测试接口393不可访问的)位置。在另一实施例中,DGOK 370可以被嵌入设备300的设计(即,网表)或配置中,从而使得DGOK 370经由处理器390和/或测试接口393不可访问(即,不能被读取、写入、计算、或以其他方式或被辨别出)。DGOK 370向密钥分割生成器340提供秘密值。在一个实施例中,DGOK 370向密钥分割生成器340提供256位秘密值。
生命周期提前寄存器321被可操作地耦合到生命周期值生成器330。OTP存储器320向生命周期值生成器330提供由生命周期提前寄存器321存储的生命周期提前值。生命周期回滚寄存器322被可操作地耦合到生命周期值生成器330。OTP存储器320向生命周期值生成器330提供由生命周期回滚寄存器322存储的生命周期回滚值。
生命周期值生成器330从OTP存储器320接收生命周期提前值和生命周期回滚值。生命周期值生成器330使用生命周期状态生成过程/函数来处理生命周期提前值和生命周期回滚值。这一生命周期状态生成过程根据其接收到的对应的生命周期提前值和生命周期回滚值来产生生命周期状态值。这些生命周期状态值被提供给密钥分割生成器340。
个性寄存器323被可操作地耦合到密钥分割生成器340。个性寄存器323存储个性值。OTP存储器320向密钥分割生成器340提供由个性寄存器323存储的个性值。使用OTP编程380和OTP读取电路381,在设备300上的软件的控制下,处理器390可以读取和写入生命周期提前寄存器321、生命周期回滚寄存器322和个性寄存器323中的一个或多个寄存器的内容。测试接口393还可以被用于读取和写入或者以其他方式获取和/或设置生命周期提前寄存器321、生命周期回滚寄存器322和个性寄存器323中的一个或多个寄存器的内容。
密钥分割生成器340使用DGOK 370、来自生命周期状态生成器330的生命周期状态值和来自个性寄存器323的个性值来生成密钥分割值。密钥分割生成器340可以通过包括例如使用给定个性值作为密钥树路径并且使用DGOK 370作为AES密钥的过程来产生密钥分割值。同样,密钥分割生成器340被用来产生密钥分割值的过程还可以包括使用生命周期状态值作为密钥树路径并且使用先前处理的结果作为AES密钥。其他单向函数/过程可以用于从DGOK 370、生命周期状态值和个性值生成密钥分割值。因此,应当理解,给定生命周期状态值或给定个性值之间的任何差异(甚至是一位差异)将导致不同密钥分割值被产生并且被提供给处理器390。另外,如果适当地选择单向函数过程,则从密钥分割值或被提供给处理器390的密钥确定DGOK 370应当在经济上是不可行的。同样,从可以由测试接口393访问或控制的任何数据和/或电路确定DGOK 370应当在经济上也是不可行的。
由密钥分割生成器340输出的密钥分割值被提供给密钥生成器350。基于密钥分割值和基本密钥标识值,密钥生成器350产生用于由处理器390在加密操作中使用的加密密钥。这些加密操作可以包括例如用于签名(即,认证)的椭圆曲线密码(ECC)、ECC加密和/或解密、AES-256加密和/或解密和/或AES-128加密和/或解密。被用于其他用途的其他加密操作也可以由密钥生成器350从密钥分割值产生。
处理器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)。
设备300可以经历各种生命周期。通过改变生命周期提前寄存器321和个性寄存器323中的值,由生命周期密钥生成器310产生的、由处理器390使用和/或经由测试接口393可访问的密钥可以被改变。通过改变由处理器390使用的密钥,与设备300相关联的数据(和/或认证和/或授权)被保护免于未经授权的使用/访问。同样,通过改变由测试接口393可访问的密钥,与设备300相关联的数据(和/或认证和/或授权)被保护免于未经授权的使用/访问。
在操作期间,响应于经由用户接口391和/或接口392而被接收的命令,个性寄存器323的位可以由处理器390连续(并且永久地)改变。对个性寄存器323的这些改变可以采用温度计编码的计数器的方式。由于对个性寄存器323的改变是永久且不可逆的,因此当个性寄存器323中的值被改变时,由生命周期密钥生成器310产生的密钥被永久地改变。
在操作期间,响应于经由用户接口391和/或接口392而被接收的命令,生命周期提前寄存器321的位可以由处理器390连续(并且永久地)改变。对生命周期提前寄存器321的这些改变可以采用温度计编码的计数器的方式。对生命周期提前寄存器321的改变是永久且不可逆的。然而,对生命周期提前寄存器321的改变的影响可以通过对生命周期回滚寄存器322的相应改变而被撤消。因此,导致生命周期密钥生成器310产生临时密钥的、对生命周期提前寄存器321的改变可以通过对生命周期回滚寄存器322的适当改变而被取消。取消对生命周期提前寄存器321的改变的影响的、对生命周期回滚寄存器322的改变由生命周期值生成器330确定。换言之,由生命周期值生成器330实现的生命周期值生成过程被配置为使得生命周期回滚寄存器322中的某些值取消生命周期提前寄存器321中的某些值的效果。
例如,如果生命周期值生成过程是生命周期回滚寄存器322与生命周期提前寄存器321之间的按位XOR操作,则只要生命周期回滚寄存器322和生命周期提前寄存器321相等(例如,都是0x0000h、0x00FFh等),相同的作为结果的生命周期状态值(例如,0x0000h)就将被提供给密钥分割生成器340,从而导致生命周期密钥生成器310向处理器390提供密钥的相同集合。如果生命周期回滚寄存器322和生命周期提前寄存器321不相等,则不同的生命周期状态值将被提供给密钥分割生成器340,从而导致生命周期密钥生成器310向处理器390提供密钥的相应的不同的集合。
为了说明,考虑其中生命周期值生成过程是生命周期回滚寄存器322与生命周期提前寄存器321之间的按位XOR操作的上述示例。如果生命周期提前寄存器321是0x00FFh,并且生命周期回滚寄存器322是0x007Fh,则生命周期状态生成器将向密钥分割生成器340提供值0x0080h。由于0x0080h不等于0x000h,并且密钥分割生成器340实现取决于包括生命周期状态值在内的所有输入值的单向函数,所以由密钥分割生成器340产生的密钥分割值(以及因此由生命周期密钥生成器310产生的密钥)将不同。
在另一示例中,如果生命周期提前寄存器321是从0x00FFh递增到0x01FFh的温度计码,并且生命周期回滚寄存器322也是从0x007Fh递增到0x00FF的温度计码,则生命周期状态生成器将向密钥分割生成器340提供值0x00100。由于0x00100h(当前生命周期状态值)不等于0x0080h(先前的生命周期状态值),所以由密钥分割生成器340产生的密钥分割值(以及因此由生命周期密钥生成器产生的密钥)将不同于预增量值,尽管这两个值都表示生命周期状态的单个增量。
因此,应当理解,生命周期值生成器330被配置为使得被存储在生命周期回滚寄存器322中的某些(但不是全部)值取消被存储在生命周期提前寄存器321中的某些相应值的效果。在其他实施例中,生命周期值生成器330可以被配置为使得生命周期提前值和生命周期回滚值的任意配对取消(或不能撤消)对应的生命周期提前值的效果。
图4A和图4B是示出了配置和解除配置密码管理的生命周期状态的方法的流程图。图4A和图4B中的步骤可以由系统100和/或设备300的一个或多个元件执行。从第一生命周期提前值和第一生命周期回滚值生成第一生命周期状态值(402)。例如,密钥状态生成器330可以从生命周期提前寄存器321和生命周期回滚寄存器322的内容生成第一生命周期状态值。这一第一生命周期状态值被提供给密钥分割生成器340。
基于第一生命周期状态值、个性值和秘密密钥值来生成第一密钥分割值(404)。例如,密钥分割生成器340可以生成被提供给密钥生成器350的第一密钥分割值。这一第一密钥分割值可以是将来自生命周期状态生成器330的第一生命周期状态值、个性寄存器323的内容和DGOK 370作为输入来产生密钥分割值的单向函数的结果。基于第一密钥分割值来生成(多个)第一密钥(406)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第一密钥分割值来生成一个或多个密钥。
改变第一生命周期提前位的值以产生第二生命周期提前值(408)。例如,处理器390可以控制OTP编程380以改变生命周期提前寄存器321中的位的值。处理器390可以控制OTP编程380以响应于用户输入391和/或经由接口392而被接收的命令(例如,经由无线接口而被接收的命令)来改变生命周期提前寄存器321中的位的值。
从第二生命周期提前值和第一生命周期回滚值生成第二生命周期状态值(410)。例如,密钥状态生成器330可以从生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的未改变的内容生成第二生命周期状态值。这一第二生命周期状态值被提供给密钥分割生成器340。
基于第二生命周期状态值、个性值和秘密密钥来值生成第二密钥分割值(412)。例如,密钥分割生成器340可以生成被提供给密钥生成器350的第二密钥分割值。这一第二密钥分割值可以是将来自生命周期状态生成器330的第二生命周期状态值、个性寄存器323的内容和DGOK 370作为输入来产生第二密钥分割值的单向函数的结果。基于第二密钥分割值来生成第二密钥(414)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第二密钥分割值来生成一个或多个密钥。
改变第一生命周期回滚位的值以产生第二生命周期回滚值(416)。例如,处理器390可以控制OTP编程380以改变生命周期回滚寄存器322中的位的值。处理器390可以控制OTP编程380以响应于用户输入391和/或经由接口392而被接收的命令(例如,经由无线接口而被接收的命令)来改变生命周期回滚寄存器322中的位的值。
从第二生命周期提前值和第二生命周期回滚值生成第一生命周期状态值(418)。例如,密钥状态生成器330可以从生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的改变的内容生成第一生命周期状态值。这一第一生命周期状态值被提供给密钥分割生成器340。
基于个性值、秘密密钥值以及从第二生命周期提前值和第二生命周期回滚值生成的第一生命周期状态值来生成第一密钥分割值(420)。例如,密钥分割生成器340可以生成第一密钥分割值,作为将来自生命周期状态生成器330的第一生命周期状态值(如通过生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的改变的内容所生成的)、个性寄存器323的内容和DGOK 370作为输入的单向函数的结果。基于从第一生命周期状态值(其又是从第二生命周期提前值和第二生命周期回滚值生成的)生成的第一密钥分割值来生成第一密钥(422)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第一密钥分割值来生成一个或多个密钥,其中第一密钥分割值是从生命周期提前寄存器321的改变的内容和生命周期回滚寄存器322的改变的内容生成的。
图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。
图5B将第二生命周期提前值525示出为二进制位1100b。第一生命周期回滚值516在图5B中被示出为二进制位1000b。第二生命周期提前值525和第一生命周期回滚值516被输入到生命周期状态生成函数530。生命周期状态生成函数530的输出是第二生命周期状态值527。在图5B中,响应于第二生命周期提前值525和第一生命周期回滚值516的生命周期状态生成函数530的输出是二进制位0100b。
图5C将第二生命周期提前值525示出为二进制位1100b。第二生命周期回滚值526在图5C中被示出为二进制位1100b。第二生命周期提前值525和第一生命周期回滚值526被输入到生命周期状态生成函数530。生命周期状态生成函数530的输出是第一生命周期状态值517。在图5C中,响应于第二生命周期提前值525和第二生命周期回滚值526的生命周期状态生成函数530的输出是二进制位0000b。因此,应当理解,图5A至图5C中所示的生命周期状态生成函数530是按位XOR操作(即,
Figure GDA0002943971260000171
)。还应当理解,其他生命周期状态生成函数530可以包括其他功能,包括产生用于多个映射的相同输出生命周期状态值的生命周期提前值和对应的生命周期回滚值的任意映射。
图6是示出了生成依赖于生命周期的加密密钥的方法的流程图。图6中所示的步骤可以由系统100和/或设备300的一个或多个元件执行。从生命周期提前值和生命周期回滚值生成生命周期状态值(602)。例如,生命周期状态生成器330可以从生命周期提前寄存器321的内容和生命周期回滚寄存器322的内容计算生命周期状态值。
生成基于生命周期状态值、秘密密钥值和第一个性值的第一密钥分割值(604)。例如,密钥分割生成器340可以基于生命周期状态值、个性寄存器323的内容和DGOK值370来计算第一密钥分割值。这一第一密钥分割值可以被提供给密钥生成器350。
基于第一密钥分割值来生成第一密钥(606)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第一密钥分割值来生成第一密钥。这一第一密钥可以被提供给处理器390以用于在加密操作中使用。
改变个性位的值以产生第二个性值(608)。例如,处理器390可以控制OTP编程380以改变个性寄存器323中的至少一个位的值。处理器390可以控制OTP编程380以响应于用户输入391和/或经由接口392而被接收的命令(例如,经由无线接口而被接收的命令)来改变个性寄存器323中的位的值。
生成基于生命周期状态值、秘密密钥值和第二个性值的第二密钥分割值(610)。例如,密钥分割生成器340可以基于生命周期状态值、个性寄存器323的改变的内容和DGOK值370来计算第二密钥分割值。这一第二密钥分割值可以被提供给密钥生成器350。
基于第二密钥分割值来生成第二密钥(612)。例如,密钥生成器350可以基于从密钥分割生成器340接收的第二密钥分割值来生成第二密钥。这一第二密钥可以被提供给处理器390以用于在加密操作中使用。应当理解,由于对个性寄存器323的改变是永久且不可逆的,所以在个性寄存器323中的位被改变之后由生命周期密钥生成器310产生的密钥被永久地改变。
图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密钥。
生命周期提前值725和生命周期回滚值726被输入到按位异或(XOR)函数730以产生生命周期状态值。生命周期状态值和来自第一加扰函数的输出被输入到第二加扰函数742——F2(L,F1),其中L表示生命周期状态值并且F1表示第一加扰函数的输出。第二加扰函数的输出是设备生成的可访问密钥分割(DGAK),例如密钥分割145。
上述方法、系统和设备可以在计算机系统中被实现,或者由计算机系统存储。上述方法也可以被存储在非暂态计算机可读介质上。本文中描述的设备、电路和系统可以使用本领域中可用的计算机辅助设计工具而被实现,并且通过包含这样的电路的软件描述的计算机可读文件而被实施。这包括但不限于系统100、设备300及其组件的一个或多个元件。这些软件描述可以是:行为、寄存器传输、逻辑组件、晶体管和布局几何级描述。此外,软件描述可以存储在存储介质上或通过载波来传送。
其中可以实现这样的描述的数据格式包括但不限于:支持如C的行为语言的格式、支持如Verilog和VHDL的寄存器传输级(RTL)语言的格式、支持几何描述语言(诸如GDSII、GDSIII、GDSIV、CIF和MEBES)的格式以及其他合适的格式和语言。此外,机器可读介质上的这样的文件的数据传输可以通过因特网上的不同介质被电子地完成,或者例如经由电子邮件而被完成。注意,物理文件可以在机器可读介质上被实现,诸如:4毫米磁带、8毫米磁带、3-1/2英寸软盘介质、CD、DVD等。
图8是示出了用于包括、处理或生成电路组件820的表示的处理系统800的一个实施例的框图。处理系统800包括一个或多个处理器802、存储器804以及一个或多个通信设备806。处理器802、存储器804和通信设备806使用任何合适类型、数目和/或配置的有线和/或无线连接808通信。
处理器802执行被存储在存储器804中的一个或多个过程812的指令以响应于用户输入814和参数816来处理和/或生成电路组件820。过程812可以是用于设计、模拟、分析和/或验证电子电路和/或生成用于电子电路的光掩模的任何合适的电子设计自动化(EDA)工具或它的部分。表示820包括描述系统100、设备300及其组件的全部或部分的数据,如图中所示。
表示820可以包括行为、寄存器传送、逻辑组件、晶体管和布局几何级描述中的一种或多种。此外,表示820可以被存储在存储介质上或通过载波而被传送。
可以实现表示820的数据格式包括但不限于:支持如C的行为语言的格式、支持如Verilog和VHDL的寄存器传输级(RTL)语言的格式、支持几何描述语言(诸如GDSII、GDSIII、GDSIV、CIF和MEBES)的格式以及其他合适的格式和语言。此外,机器可读介质上的这样的文件的数据传输可以通过因特网上的不同介质被电子地完成,或者例如经由电子邮件而被完成。
用户输入814可以包括来自键盘、鼠标、语音识别接口、麦克风和扬声器、图形显示器、触摸屏或其他类型的用户接口设备的输入参数。这一用户接口可以被分布在多个接口设备中。参数816可以包括被输入以帮助定义表示820的规格和/或特性。例如,参数816可以包括定义设备类型(例如,NFET、PFET等)、拓扑(例如,框图、电路描述、图表等)和/或设备描述(例如,设备属性、设备尺寸、电源电压、模拟温度、仿真模型等)的信息。
存储器804包括存储过程812、用户输入814、参数816和电路组件820的任何合适的类型、数目和/或配置的非暂态计算机可读存储介质。
通信设备806包括从处理系统800向另一处理或存储系统(未示出)传输信息和/或从另一处理或存储系统(未示出)接收信息的任何合适类型、数目和/或配置的有线和/或无线设备。例如,通信设备806可以将电路组件820传输到另一系统。通信设备806可以接收过程812、用户输入814、参数816和/或电路组件820,并且引起过程812、用户输入814、参数816和/或电路组件820被存储在存储器804中。
已经出于说明和描述的目的而呈现了本发明的以上描述。并非旨在穷尽本发明或将本发明限制为所公开的精确形式,并且根据上述教导,其他修改和改变也是可能的。选择并且描述实施例是为了最好地解释本发明的原理及其实际应用,从而使得本领域其他技术人员能够以适合于预期的特定用途的各种实施例和各种修改来最佳地利用本发明。旨在于将所附权利要求解释为包括除了现有技术所限制的范围之外的本发明的其他备选实施例。

Claims (20)

1.一种生成加密密钥的方法,包括:
向具有电路的半导体设备配置秘密密钥值,所述秘密密钥值对于在所述设备上运行的软件不可访问;
向一次性电可编程半导体存储器位配置初始值,每个一次性电可编程半导体存储器位被限制为从相应初始值的一次值改变;
从由所述一次性电可编程半导体存储器位的第一子集存储的生命周期提前位接收第一生命周期提前值,所述生命周期提前位用于对所述秘密密钥值的加扰的改变;
从由所述一次性电可编程半导体存储器位的第二子集存储的生命周期回滚位接收第一生命周期回滚值,所述生命周期回滚位用于取消对所述秘密密钥值的加扰的改变;
使用生命周期状态生成过程从所述第一生命周期提前值和所述第一生命周期回滚值生成第一生命周期状态值;
从由所述一次性电可编程半导体存储器位的第三子集存储的个性位接收第一个性值,所述个性位用于对所述秘密密钥值的加扰的永久改变;
使用单向处理函数,基于所述秘密密钥值、所述第一个性值和所述第一生命周期状态值来生成第一密钥分割值;以及,
从所述第一密钥分割值生成第一加密密钥。
2.根据权利要求1所述的方法,还包括:
改变第一生命周期提前位,从而将由所述一次性电可编程半导体存储器位的所述第一子集存储的所述第一生命周期提前值改变为第二生命周期提前值;
使用所述生命周期状态生成过程从所述第二生命周期提前值和所述第一生命周期回滚值生成第二生命周期状态值;
使用所述单向处理函数,基于所述秘密密钥值、所述第一个性值和所述第二生命周期状态值来生成第二密钥分割值,所述第二生命周期状态值不同于所述第一生命周期状态值;以及,
从所述第二密钥分割值生成用于在保护由所述设备处理的数据时使用的第二加密密钥,作为所述第二生命周期状态值不同于所述第一生命周期状态值的结果,所述第二加密密钥不同于所述第一加密密钥。
3.根据权利要求2所述的方法,还包括:
改变第一生命周期回滚位,从而将由所述一次性电可编程半导体存储器位的所述第二子集存储的所述第一生命周期回滚值改变为第二生命周期回滚值;
使用所述生命周期状态生成过程从所述第二生命周期提前值和所述第二生命周期回滚值生成第一生命周期状态值;
使用所述单向处理函数,基于所述秘密密钥值、所述个性值以及从所述第二生命周期提前值和所述第二生命周期回滚值生成的所述第一生命周期状态值来生成所述第一密钥分割值;以及,
从生成自所述第一生命周期状态值的所述第一密钥分割值生成所述第一加密密钥。
4.根据权利要求1所述的方法,其中当由所述一次性电可编程半导体存储器位的所述第一子集存储的生命周期提前值等于由所述一次性电可编程半导体存储器位的所述第二子集存储的生命周期回滚值时,所述第一生命周期状态值由所述生命周期状态生成过程生成。
5.根据权利要求1所述的方法,其中所述生命周期状态生成过程将生命周期提前值和生命周期回滚值的多个配对映射到所述第一生命周期状态值。
6.根据权利要求5所述的方法,其中对于未由所述生命周期状态生成过程映射到所述第一生命周期状态值的生命周期提前值和生命周期回滚值的多个配对,由所述生命周期状态生成过程映射到除了所述第一生命周期状态值之外的生命周期状态值。
7.根据权利要求1所述的方法,还包括:
改变第一个性位,从而将由所述一次性电可编程半导体存储器位的所述第三子集存储的所述第一个性值改变为第二个性值;
使用所述单向处理函数,基于所述秘密密钥值、所述第二个性值和所述第一生命周期状态值来生成个性化密钥分割值;以及,
从所述个性化密钥分割值生成用于在保护由所述设备处理的数据时使用的个性化加密密钥,作为所述第二个性值不同于所述第一个性值的结果,所述个性化加密密钥不同于所述第一加密密钥。
8.一种用于生成加密密钥的集成电路,包括:
用来提供秘密密钥值的电路,所述秘密密钥值对于控制所述集成电路的软件不可访问;
一次性可编程存储器位,每个一次性可编程存储器位被限制为值从相应初始值的一次改变,所述一次性可编程存储器位包括由所述一次性可编程存储器位的第一子集存储的生命周期提前位、由所述一次性可编程存储器位的第二子集存储的生命周期回滚位以及由所述一次性可编程存储器位的第三子集存储的个性位,所述生命周期提前位用于对所述秘密密钥值的加扰的改变,所述生命周期回滚位用于取消对所述秘密密钥值的加扰的改变,所述个性位用于对所述秘密密钥值的加扰的永久改变;
生命周期值生成电路,其被配置为使用生命周期值生成过程从由所述生命周期提前位存储的生命周期提前值和由所述生命周期回滚位存储的生命周期回滚值生成生命周期值;
单向函数电路,其用来使用单向处理函数基于由所述个性位存储的个性值、生命周期值和所述秘密密钥值来生成密钥分割值;以及,
密钥融合电路,其用来基于所述密钥分割值来生成多个加密密钥值。
9.根据权利要求8所述的集成电路,其中改变由所述一次性可编程存储器位的所述第一子集存储的生命周期提前值而不改变由所述一次性可编程存储器位的所述第二子集存储的生命周期回滚值改变由密钥融合电路生成的所述多个加密密钥值。
10.根据权利要求9所述的集成电路,其中改变由所述一次性可编程存储器位的所述第一子集存储的生命周期提前值并且改变由所述一次性可编程存储器位的所述第二子集存储的对应的生命周期回滚值不改变由密钥融合电路生成的所述多个加密密钥值。
11.根据权利要求9所述的集成电路,其中生命周期提前值的第一集合和生命周期回滚值的对应的第一集合导致加密密钥值的第一集合由所述密钥融合电路产生。
12.根据权利要求11所述的集成电路,其中生命周期提前值的第二集合和生命周期回滚值的对应的第二集合导致加密密钥值的第二集合由所述密钥融合电路产生,加密密钥值的所述第二集合不在加密密钥值的所述第一集合中。
13.根据权利要求8所述的集成电路,其中改变由所述一次性可编程存储器位的所述第三子集存储的任何个性值改变由密钥融合电路生成的所述多个加密密钥值。
14.根据权利要求13所述的集成电路,其中生命周期回滚位的生命周期回滚值使对应的生命周期提前位对由所述密钥融合电路产生的所述加密密钥值的影响失效。
15.一种存储指令的计算机可读介质,所述指令在由处理器执行时使处理器生成集成电路的电路组件的表示,所述集成电路包括:
用来提供秘密密钥值的电路,所述秘密密钥值对于控制所述集成电路的软件不可访问;
一次性可编程存储器位,每个一次性可编程存储器位被限制为值从相应初始值的一次改变,所述一次性可编程存储器位包括由所述一次性可编程存储器位的第一子集存储的生命周期提前位、由所述一次性可编程存储器位的第二子集存储的生命周期回滚位以及由所述一次性可编程存储器位的第三子集存储的个性位,所述生命周期提前位用于对所述秘密密钥值的加扰的改变,所述生命周期回滚位用于取消对所述秘密密钥值的加扰的改变,所述个性位用于对所述秘密密钥值的加扰的永久改变;
生命周期值生成电路,其用来使用生命周期值生成过程从由所述生命周期提前位存储的生命周期提前值和由所述生命周期回滚位存储的生命周期回滚值生成生命周期值,所述生命周期值包括从第一生命周期提前值和第一生命周期回滚值生成的第一生命周期状态值;
单向函数电路,其用来使用单向处理函数基于由所述个性位存储的个性值、生命周期值和所述秘密密钥值来生成密钥分割值,所述密钥分割值包括基于所述秘密密钥值、第一个性值和所述第一生命周期状态值的第一密钥分割值;以及,
密钥融合电路,其用来基于所述密钥分割值来生成多个加密密钥值,所述多个加密密钥值包括从所述第一密钥分割值生成的第一加密密钥。
16.根据权利要求15所述的计算机可读介质,改变第一生命周期提前位,将由所述一次性可编程存储器位的所述第一子集存储的所述第一生命周期提前值改变为第二生命周期提前值,第二生命周期状态值由所述生命周期值生成电路从所述第二生命周期提前值和所述第一生命周期回滚值生成,基于所述秘密密钥值、所述第一个性值和所述第二生命周期状态值的第二密钥分割值由所述单向函数电路生成,所述第二生命周期状态值不同于所述第一生命周期状态值,并且所述密钥融合电路从所述第二密钥分割值生成第二加密密钥,其中作为所述第二生命周期状态值不同于所述第一生命周期状态值的结果,所述第二加密密钥不同于所述第一加密密钥。
17.根据权利要求16所述的计算机可读介质,改变第一生命周期回滚位,将由所述一次性可编程存储器位的所述第二子集存储的所述第一生命周期回滚值改变为第二生命周期回滚值,并且所述第一生命周期状态值从所述第二生命周期提前值和所述第二生命周期回滚值生成。
18.根据权利要求17所述的计算机可读介质,其中所述单向处理函数基于所述秘密密钥值、所述个性值以及从所述第二生命周期提前值和所述第二生命周期回滚值生成的所述第一生命周期状态值来生成所述第一密钥分割值,并且所述第一加密密钥从生成自所述第一生命周期状态值的所述第一密钥分割值生成。
19.根据权利要求15所述的计算机可读介质,其中改变由所述一次性可编程存储器位的所述第三子集存储的任何个性值改变由密钥融合电路生成的所述多个加密密钥值。
20.根据权利要求19所述的计算机可读介质,其中所述生命周期状态生成过程将生命周期提前值和生命周期回滚值的多个配对映射到所述第一生命周期状态值。
CN201680072688.1A 2015-12-16 2016-12-15 生成加密密钥的方法、集成电路和计算机可读介质 Active CN108370310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111457136.1A CN114157422A (zh) 2015-12-16 2016-12-15 生成加密密钥的方法、集成电路和计算机可读介质

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562268018P 2015-12-16 2015-12-16
US62/268,018 2015-12-16
PCT/US2016/066762 WO2017106406A1 (en) 2015-12-16 2016-12-15 Cryptographic management of lifecycle states

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111457136.1A Division CN114157422A (zh) 2015-12-16 2016-12-15 生成加密密钥的方法、集成电路和计算机可读介质

Publications (2)

Publication Number Publication Date
CN108370310A CN108370310A (zh) 2018-08-03
CN108370310B true CN108370310B (zh) 2021-11-30

Family

ID=59057652

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111457136.1A Pending CN114157422A (zh) 2015-12-16 2016-12-15 生成加密密钥的方法、集成电路和计算机可读介质
CN201680072688.1A Active CN108370310B (zh) 2015-12-16 2016-12-15 生成加密密钥的方法、集成电路和计算机可读介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111457136.1A Pending CN114157422A (zh) 2015-12-16 2016-12-15 生成加密密钥的方法、集成电路和计算机可读介质

Country Status (5)

Country Link
US (2) US10897352B2 (zh)
EP (1) EP3391584B1 (zh)
JP (1) JP6898921B2 (zh)
CN (2) CN114157422A (zh)
WO (1) WO2017106406A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3839792B1 (en) 2019-12-16 2022-03-09 Shenzhen Goodix Technology Co., Ltd. Method for secure lifecycle tracking with embedded fuses using key based thermometer code scrambling
CN112468296B (zh) * 2020-11-26 2022-10-14 湖南国科微电子股份有限公司 一种密钥编程方法、系统、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547836A (zh) * 2001-08-24 2004-11-17 ��ķɭ���ó�׹�˾ 本地数字网络、安装新设备的方法及数据广播和接收方法
CN101140778A (zh) * 2006-09-07 2008-03-12 国际商业机器公司 恢复可移动存储介质上残留的加密数据的方法和系统
CN102725737A (zh) * 2009-12-04 2012-10-10 密码研究公司 可验证防泄漏的加密和解密
CN103548300A (zh) * 2011-07-25 2014-01-29 三菱电机株式会社 加密装置、加密方法以及加密程序
CN105007157A (zh) * 2014-04-23 2015-10-28 密码研究公司 基于设备生成的密钥来生成和管理多个基密钥

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2716989B1 (fr) * 1994-03-04 1996-04-05 Gemplus Card Int Procédé de fonctionnement d'une carte à puce.
US5870468A (en) * 1996-03-01 1999-02-09 International Business Machines Corporation Enhanced data privacy for portable computers
FR2833119A1 (fr) * 2001-11-30 2003-06-06 St Microelectronics Sa Generation de quantites secretes d'identification d'un circuit integre
CA2512645A1 (en) 2003-01-07 2004-07-29 Qualcomm Incorporated System, apparatus and method for replacing a cryptographic key
US8108691B2 (en) * 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8375189B2 (en) * 2005-12-30 2013-02-12 Intel Corporation Configuring levels of program/erase protection in flash devices
US8014530B2 (en) * 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US20080320263A1 (en) * 2007-06-20 2008-12-25 Daniel Nemiroff Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner
US7991943B2 (en) 2007-10-26 2011-08-02 Standard Microsystems Corporation Implementation of one time programmable memory with embedded flash memory in a system-on-chip
US8175276B2 (en) * 2008-02-04 2012-05-08 Freescale Semiconductor, Inc. Encryption apparatus with diverse key retention schemes
ATE540371T1 (de) * 2008-06-23 2012-01-15 St Ericsson Sa Elektronische vorrichtung und verfahren zur software- oder firmwareaktualisierung einer elektronischen vorrichtung
US8594333B2 (en) * 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8315068B2 (en) * 2009-11-12 2012-11-20 International Business Machines Corporation Integrated circuit die stacks having initially identical dies personalized with fuses and methods of manufacturing the same
US8375225B1 (en) * 2009-12-11 2013-02-12 Western Digital Technologies, Inc. Memory protection
US8315620B1 (en) 2011-05-27 2012-11-20 The Nielsen Company (Us), Llc Methods and apparatus to associate a mobile device with a panelist profile
GB201110492D0 (en) * 2011-06-21 2011-08-03 Irdeto Corporate Bv Receiver software protection
US8701125B2 (en) 2011-09-06 2014-04-15 The Nielsen Company (Us), Llc Methods and apparatus to detect uninstallation of an on-device meter
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US10771448B2 (en) 2012-08-10 2020-09-08 Cryptography Research, Inc. Secure feature and key management in integrated circuits
US8955144B2 (en) * 2013-06-28 2015-02-10 Intel Corporation Protecting information processing system secrets from debug attacks
US9584509B2 (en) * 2014-05-07 2017-02-28 Cryptography Research, Inc. Auditing and permission provisioning mechanisms in a distributed secure asset-management infrastructure
US10289871B2 (en) * 2015-11-02 2019-05-14 Nxp Usa, Inc. Integrated circuit lifecycle security with redundant and overlapping crosschecks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547836A (zh) * 2001-08-24 2004-11-17 ��ķɭ���ó�׹�˾ 本地数字网络、安装新设备的方法及数据广播和接收方法
CN101140778A (zh) * 2006-09-07 2008-03-12 国际商业机器公司 恢复可移动存储介质上残留的加密数据的方法和系统
CN102725737A (zh) * 2009-12-04 2012-10-10 密码研究公司 可验证防泄漏的加密和解密
CN103548300A (zh) * 2011-07-25 2014-01-29 三菱电机株式会社 加密装置、加密方法以及加密程序
CN105007157A (zh) * 2014-04-23 2015-10-28 密码研究公司 基于设备生成的密钥来生成和管理多个基密钥

Also Published As

Publication number Publication date
EP3391584B1 (en) 2020-11-04
US10897352B2 (en) 2021-01-19
CN108370310A (zh) 2018-08-03
JP6898921B2 (ja) 2021-07-07
CN114157422A (zh) 2022-03-08
US20210160063A1 (en) 2021-05-27
EP3391584A4 (en) 2019-07-17
US20180248688A1 (en) 2018-08-30
WO2017106406A1 (en) 2017-06-22
EP3391584A1 (en) 2018-10-24
US11582033B2 (en) 2023-02-14
JP2019504519A (ja) 2019-02-14

Similar Documents

Publication Publication Date Title
KR102345379B1 (ko) 자기-검증 내부 식별자를 갖는 암호화 asic
US8355502B1 (en) Evolved circuits for bitstream protection
US9483664B2 (en) Address dependent data encryption
CN103164666B (zh) 保护安全数据的存储器装置及认证存储器装置的方法
CN104252881B (zh) 半导体集成电路及系统
US7606362B1 (en) FPGA configuration bitstream encryption using modified key
Maes et al. A pay-per-use licensing scheme for hardware IP cores in recent SRAM-based FPGAs
KR20210131438A (ko) 비밀 키를 이용한 아이덴티티 검증
CN108063664B (zh) 基于配置的密码密钥生成系统
CN105515763B (zh) 用于经由逻辑门加密来提高机密性的系统和方法
CA2308755A1 (en) Reconfigurable secure hardware apparatus and method of operation
US11582033B2 (en) Cryptographic management of lifecycle states
CN111670443A (zh) 集成电路个性化
US11528126B2 (en) Interface for revision-limited memory
CN109241789A (zh) 一种芯片标识方法
CN110516457B (zh) 一种数据存储方法及读取方法、存储设备
TW202147124A (zh) 電子裝置及操作電子裝置的方法
JP5798007B2 (ja) マイクロコンピュータおよびデータ処理装置
US9582686B1 (en) Unique secure serial ID
Li et al. Enhancing tpm security by integrating sram pufs technology
CN112470158A (zh) 用于可编程逻辑器件的故障表征系统和方法
CN104573754A (zh) 芯片标识符读写方法
Böhm et al. Using the SRAM of a Microcontroller as a PUF
JP2017108293A (ja) 半導体集積回路装置およびデータ処理装置
Mateu Barriendos Analysis of Data Remanence and Power-up States of SRAM Cells in Embedded Systems

Legal Events

Date Code Title Description
PB01 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