集成电路以及授权访问由集成电路存储的内容的方法

文档序号:115789 发布日期:2021-10-19 浏览:17次 >En<

阅读说明:本技术 集成电路以及授权访问由集成电路存储的内容的方法 (Integrated circuit and method of authorizing access to content stored by an integrated circuit ) 是由 吕士濂 沙曼·阿德汗 池育德 于 2021-06-28 设计创作,主要内容包括:本文公开了基于一次可编程(OTP)存储器件的具有增强的安全性的物理不可克隆功能(PUF)。一方面,可以采用间接过程、哈希或它们的组合来隐藏用于允许访问集成电路的密钥。每个间接过程可以包括:基于由OTP存储器件存储在地址处的内容来识别OTP存储器件的后续地址;以及获得由OTP存储器件在后续地址处存储的后续内容。通过多个间接过程,可以获得由OTP存储器件存储的隐藏内容。在一种方法中,可以将哈希应用于输入位以获得要应用的OTP存储器件的地址。在一种方法中,可以将哈希应用于由OTP存储器件存储的隐藏内容以生成密钥。本发明的实施例还涉及集成电路以及授权访问由集成电路存储的内容的方法。(Physically Unclonable Functions (PUFs) with enhanced security based on one-time programmable (OTP) memory devices are disclosed. In one aspect, an indirection procedure, hashing, or a combination thereof may be employed to hide the key used to allow access to the integrated circuit. Each indirection procedure may include: identifying a subsequent address of the OTP memory device based on the content stored at the address by the OTP memory device; and obtaining subsequent content stored by the OTP memory device at the subsequent address. Through a number of indirect processes, the hidden content stored by the OTP memory device can be obtained. In one approach, a hash may be applied to the input bits to obtain the address of the OTP memory device to be applied. In one approach, a hash may be applied to hidden content stored by the OTP memory device to generate a key. Embodiments of the invention also relate to an integrated circuit and a method of authorizing access to content stored by an integrated circuit.)

集成电路以及授权访问由集成电路存储的内容的方法

技术领域

本发明的实施例涉及集成电路以及授权访问由集成电路存储的内容的方法。

背景技术

物理不可克隆功能(PUF)电路是通常在集成电路内的电路或物理结构,其响应于应用于PUF电路的不同输入(例如,质询)而提供许多对应的输出。响应于所应用的相同输入,不同集成电路中的不同PUF电路可以基于集成电路的物理特性来生成不同的输出。因此,PUF电路的输出可以被实现为集成电路的唯一标识。

发明内容

根据本发明的实施例,提供了一种集成电路,包括:一次可编程(OTP)存储器件;和控制器,耦合至OTP存储器件,其中,控制器包括编程的指令,该指令在被执行时使控制器:接收指示OTP存储器件的输入地址的一组输入位,基于输入地址,通过多个间接过程,获得由OTP存储器件在隐藏地址处存储的隐藏内容,其中,每个间接过程包括:i)基于由OTP存储器件在一地址处存储的内容来标识OTP存储器件的后续地址,和ii)获得由OTP存储器件在后续地址处存储的后续内容,以及根据OTP存储器件在隐藏地址处存储的隐藏内容生成密钥。

根据本发明的实施例,还提供了一种生成密钥的方法,包括:由控制器接收指示一次可编程(OTP)存储器件的第一地址的一组输入位;由控制器获得由OTP存储器件在第一地址处存储的第一内容;由控制器基于第一内容获得OTP存储器件的第二地址;由控制器获得由OTP存储器件在第二地址处存储的第二内容;以及由控制器基于第二内容生成密钥。

根据本发明的实施例,还提供了一种生成密钥的方法,包括:由控制器接收一组输入位;由控制器根据哈希函数将该组输入位转换为输入地址;由控制器将输入地址应用于第一存储器件;由控制器根据应用的输入地址;基于由第一存储器件存储的隐藏内容来生成密钥;以及基于密钥访问由第二存储器件存储的内容。

附图说明

当结合附图进行阅读时,根据下面详细的描述可以最佳地理解本发明的各个方面。应该注意,根据工业中的标准实践,各个部件未按比率绘制。实际上,为了清楚的讨论,各种部件的尺寸可以被任意增加或减少。

图1是根据一个实施例的包括集成电路和用于访问由集成电路存储的内容的服务器的系统的示图。

图2是根据一个实施例的物理不可克隆功能(PUF)器件的图,该器件包括存储内容的存储器件和用于隐藏由该存储器件存储的内容的PUF控制器。

图3是根据一个实施例的应用于集成电路的一组输入位的示图。

图4A是示出根据一个实施例的示例间接(indirection)过程的示图。

图4B是示出根据一个实施例的示例间接过程的示图。

图5是示出根据一些实施例的通过间接过程生成密钥的示例过程的流程图。

图6是示出根据一些实施例的通过间接过程获得隐藏内容的示例过程的流程图。

图7是示出根据一些实施例的用于基于哈希函数获得要应用的地址的地址生成器的示图。

图8是示出根据一些实施例的基于哈希函数来生成密钥的密钥生成器的示图。

图9是示出根据一些实施例的示例移位寄存器的示图。

图10是示出根据一些实施例的示例移位寄存器的示图。

图11是示出根据一些实施例的示例密钥生成器的示图。

图12是根据一些实施例的计算系统的示例框图。

具体实施方式

以下公开内容提供了许多不同的实施例或实例,以用于实现所提供主题的不同特征。以下将描述组件和布置的具体实例以简化本发明。当然,这些仅是实例并且不意欲限制本发明。例如,在以下描述中,在第二部件上方或上形成第一部件可以包括第一部件和第二部件直接接触的实施例,也可以包括形成在第一部件和第二部件之间的附加部件使得第一部件和第二部件不直接接触的实施例。而且,本发明在各个实例中可以重复参考数字和/或字母。这种重复仅是为了简明和清楚,其自身并不表示所论述的各个实施例和/或配置之间的关系。此外,为了便于描述,本文中可以使用诸如“在…下方”、“在…下面”、“下部”、“在…上面”、“上部”等的空间关系术语,以描述一个元件或部件与另一元件或部件的如图所示的关系。空间关系术语旨在包括除了在图中所描述的方向之外的使用或操作中的器件的不同方向。装置可以以其他方式定位(旋转90度或在其他方位),并且在本文中使用的空间关系描述符可以同样地作相应地解释。

根据一些实施例,集成电路采用PUF器件进行认证。PUF器件可以包括用于存储隐藏内容的一次可编程(OTP)存储器件,基于此可以生成密钥。根据密钥,可以访问由存储器件(例如,静态随机存取存储器(SRAM))存储的内容。一方面,可以采用间接过程、哈希或它们的组合来隐藏用于生成密钥的内容。每个间接过程可以包括:基于由OTP存储器件存储在地址处的内容来识别OTP存储器件的后续地址;以及获得由OTP存储器件在后续地址处存储的后续内容。通过许多间接过程,可以获得由OTP存储器件存储的隐藏内容。在一种方法中,可以将哈希应用于输入位以获得要应用的OTP存储器件的输入地址,并且可以通过经由间接过程将输入地址应用于OTP存储器件来获得隐藏内容。在一种方法中,可以将哈希应用于由OTP存储器件存储的隐藏内容以生成密钥。

有利地,可以通过隐藏由OTP存储器件存储的用于生成密钥的内容来确保对集成电路的访问。一方面,由于集成电路的物理特性,不同集成电路中的不同OTP存储器件可以存储不同的内容,使得每个OTP存储器件存储的内容可以用于识别集成电路。但是,可以通过反向工程发现由OTP存储器件存储的内容。通过经由间接过程隐藏由OTP存储器件存储的内容并通过应用哈希,可以无法通过反向工程轻松发现隐藏内容。此外,可以基于由OTP存储器件存储的隐藏内容,以安全的方式生成用于允许访问集成电路的密钥。

图1是根据一个实施例的系统100的图,其包括集成电路120和用于访问由集成电路120存储的内容的器件110。在一些实施例中,器件110通过通信链路(例如,有线通信链路或无线网络通信链路)通信耦合到集成电路120。器件110可以是任何计算设备(例如,服务器、个人计算机、台式PC、移动设备等)。集成电路120可以体现为现场可编程门逻辑(FPGA)、专用集成电路(ASIC)或其任意组合。在一种方法中,器件110通过通信链路向集成电路120发送一组输入位115,以访问由集成电路120存储的内容。集成电路120可以接收该组输入位115。响应于该组输入位115,集成电路120可以允许或不允许器件110访问由集成电路120存储的内容。

在一些实施例中,集成电路120包括PUF器件130和SRAM 160。SRAM 160可以存储数据或内容。在一些实施例中,SRAM 160被另一种存储数据的存储器件代替。一方面,对SRAM160进行加密以保护由SRAM 160存储的内容。响应于有效密钥125,可以启用或访问SRAM160。PUF器件130可以从器件110接收该组输入位115,并且根据该组输入位115生成密钥125。PUF器件130可以将密钥125发送到SRAM 160,以使得能够访问由SRAM 160存储的内容。一方面,密钥125在集成电路120内生成和提供,使得可以从外部器件确保密钥125。

在一些实施例中,PUF器件130包括PUF控制器140和OTP存储器件135。PUF控制器140可以体现为处理器、状态机、数字逻辑电路或其任意组合。PUF控制器140可以包括被编程的指令,当被执行时使PUF控制器140执行本文所述的各种功能。OTP存储器件135可以被实现为非易失性存储器件(例如,闪存器件、电阻式随机存取存储器(ReRAM)、磁阻式随机存取存储器(MRAM)、相变随机存取存储器(PCRAM)等)。一方面,OTP存储器件135可以存储隐藏内容。PUF控制器140可以根据该组输入位115从OTP存储器件135获得隐藏内容,并且基于隐藏内容生成用于实现对SRAM 160的访问的密钥125。

一方面,OTP存储器件135根据OTP存储器件135的物理特性存储唯一数据。在一个示例中,高电压可以被施加至OTP存储器件135,使得可能发生氧化物击穿。由于氧化物的厚度以及氧化物的形状和质量的随机性质,氧化物击穿在OTP存储器件135中的不同单元上是高度可变的。根据氧化物击穿,OTP存储器件135可以存储对于集成电路120唯一或特定的内容。由OTP存储器件135存储的不同内容可以通过对应的地址来定位或识别。

一方面,PUF控制器140从器件110接收该组输入位115,并且根据该组输入位115获得由OTP存储器件135存储的隐藏内容。PUF控制器140可以根据该组输入位115生成密钥125。一方面,可以通过反向工程发现由OTP存储器件135存储的内容。例如,可以通过原子力显微镜(AFM)或电子束感应电流(EBIC)来识别或推断由OTP存储器件135存储的内容。为了保护由OTP存储器件135存储的内容免于反向工程,可以应用间接过程、哈希或它们的组合。

在一种方法中,PUF控制器140接收该组输入位115,并且根据该组输入位115获得用于应用于OTP存储器件135的输入地址。PUF控制器140可以获得该组输入位115的一部分位,并且基于该组输入位115的部分位获得输入地址。在一种方法中,PUF控制器140可以将部分位应用于哈希函数以生成输入地址。PUF控制器140可以将输入地址应用于OTP存储器件135以通过间接过程获得由OTP存储器件135存储的隐藏内容。对于每个间接过程,PUF控制器140可以将地址应用于OTP存储器件135,并且获得由OTP存储器件135在该地址处存储的内容。PUF控制器140可以将获得的内容转换为后续地址,并将后续地址应用于OTP存储器件135。PUF控制器140可以根据该组输入位115来选择转换过程,并且通过选定的转换过程将内容转换为后续地址。PUF控制器140可以通过间接过程迭代地获得后续内容,以获得由OTP存储器件135存储的隐藏内容。PUF控制器140可以针对预定数量或由该组输入位115所指示的数量来执行迭代过程。PUF控制器140可以根据来自PUF器件130的隐藏内容来生成密钥125。例如,PUF控制器140可以将隐藏内容应用于哈希函数以生成密钥125。PUF控制器140可以将密钥125传输至SRAM 160,以使得能够访问由SRAM 160存储的内容。下面关于图2-图11提供关于PUF控制器140的示例操作和实施方式的详细描述。

图2是根据一个实施例的PUF器件130的示图,其包括存储内容的OTP存储器件135和PUF控制器140以隐藏由OTP存储器件135存储的内容。在一些实施例中,OTP存储器件135可以存储与不同地址C1、C2...CN相关联的不同内容。在一些实施例中,PUF控制器140包括接口电路220、内容处理器230和密钥生成器270。PUF控制器140的这些组件可以一起操作以接收一组输入位115,并且通过间接过程基于该组输入位115获得由OTP存储器件135存储的隐藏内容245。此外,PUF控制器140的这些组件可以一起操作以根据隐藏内容245生成密钥125。在一些实施例中,PUF控制器140包括比图2所示的更多、更少或不同的组件。

在一些实施例中,接口电路220是接收该组输入位115并提取用于生成密钥125的信息的组件。一方面,该组输入位115包括对应于质询或输入地址的第一部分、指示要移位以获得输入地址的位数的第二部分、指示要应用的间接过程的数量的第三部分、指示要应用以将由OTP存储器件135存储的内容转换为后续地址的转换过程的第四部分、指示要移位以生成密钥125的位数的第五部分,等等。下面参考图3提供该组输入位115的示例。在一个实施方式中,接口电路220包括:串行-并行转换器,其将串行位转换成并行位;以及寄存器,其在并行位中存储对应的部分。接口电路220可以将该组输入位115的不同部分提供给内容处理器230。

在一些实施例中,内容处理器230是将地址240应用于OTP存储器件135并通过间接过程从OTP存储器件135获得隐藏内容245的组件。在一些实施例中,内容处理器230包括地址生成器232、内容解码器234、ECC逻辑电路236和间接控制器238。根据接收的信息,这些组件可以一起操作以从接口电路220接收信息,并且执行间接过程。在一些实施例中,内容处理器230包括比图2所示的更多、更少或不同的组件。

在一些实施例中,地址生成器232是根据该组输入位115获得或生成要应用于OTP存储器件135的输入地址240的组件。在一个示例中,地址生成器232将该组输入位的第一部分应用于哈希函数以生成输入地址240。地址生成器232可以将输入位115的第一部分移位由该组输入位115的第二部分指示的位数并将移位部分应用于哈希函数。示例哈希函数包括在该组输入位115的第一部分与移位部分之间的XOR运算。下面关于图7提供地址生成器232的示例实施方式。地址生成器232可以将输入地址240应用于OTP存储器件135。通过根据哈希函数生成输入地址240,可以从外部器件隐藏应用于OTP存储器件135的输入地址240。

在一些实施例中,内容解码器234是从OTP存储器件135接收内容245并将内容245转换为后续地址240的组件。一方面,内容解码器234将具有第一位数(例如,64位)的内容245转换为具有比第一位数少的第二位数(例如,5位)的后续地址。内容解码器234可以接收该组输入位115的指示要执行的转换过程的第四部分,并且如由该组位115的第四部分所指示的选择转换过程。内容解码器234可以通过选择的过程将从OTP存储器件135接收的内容245转换为后续地址240。例如,第一转换过程可以将没有OTP存储器件135的ECC位的接收的内容245转换为后续地址240,并且第二转换过程可以将具有OTP存储器件135的ECC位的接收的内容245转换为后续地址240。在没有ECC位的情况下转换内容245可以简化转换过程,而在具有ECC位的情况下转换内容245可以增加复杂度以确保由OTP存储器件135存储的内容。在一个实施方式中,内容解码器234包括在接收的内容245的不同部分之间执行XOR运算以减少位数的XOR门。下面关于图4A和图4B提供内容解码器234的示例实施方式和操作。

在一些实施例中,ECC逻辑电路236是对从OTP存储器件135接收的内容245执行ECC校正的电路。一方面,ECC逻辑电路236可以接收由OTP存储器件135存储的ECC位并且基于ECC位通过ECC对接收的内容245执行校正。通过对接收的内容执行校正,可以校正来自OTP存储器件135的内容245中的错误位。

在一些实施例中,间接控制器238是执行间接过程以获得隐藏内容245的电路。间接控制器238可以包括存储剩余要应用的间接过程的数量的计数器。间接控制器238可以接收输入位115的指示要应用以获得隐藏内容245的间接过程的数量的第三部分,并且设置计数器以存储或保持由输入位115的第三部分指示的数量。对于间接过程,间接控制器238可以配置内容解码器234以将从OTP存储器件135接收的内容245转换为后续地址240,并将后续地址240应用于OTP存储器件135以获得后续内容。当后续地址240被应用于OTP存储器件135时,间接控制器238可以将计数器存储的数量例如减少一。间接控制器238可以根据计数器存储的数字来确定是否存在要应用的剩余间接过程。例如,间接控制器238将计数器存储的数字与预定数字(例如“1”或“0”)进行比较,以确定是否存在要应用的剩余过程。响应于间接控制器238确定计数器存储的数字不同于预定数字,间接控制器238可以确定存在要应用的剩余间接过程,并且可以使或配置内容解码器234以执行附加间接过程。响应于间接控制器238确定计数器存储的数字等于预定数字,间接控制器238可以确定不再存在要应用的间接过程,并将从OTP存储器件135接收的最后内容245提供给密钥生成器270作为隐藏内容245。

一方面,密钥生成器270是接收隐藏内容并根据接收的隐藏内容生成密钥125的组件。一方面,密钥生成器270通过将隐藏内容应用于哈希函数来生成密钥125。例如,密钥生成器270可以将输入位115的指示输入地址的第一部分移位由该组输入位115的第五部分指示的位数,并将移位部分应用于哈希函数。示例哈希函数包括与来自OTP存储器件135的隐藏内容245对应的地址和移位部分之间的XOR运算。下面关于图8提供密钥生成器270的示例实施方式。密钥生成器270可以将密钥125传输至SRAM器件160以使得能够访问由SRAM器件160存储的内容。通过基于隐藏内容245根据哈希函数生成密钥125,可以从外部器件隐藏由OTP存储器件135存储的隐藏内容245,并且可以以安全的方式生成密钥125。

图3是根据一个实施例的应用于集成电路120的一组示例输入位115的示图。如以上关于图2所述,该组输入位115可以包括对应于质询或输入地址240的第一部分310、指示要移位以获得输入地址240的位数的第二部分320、指示要应用的间接过程的数量的第三部分330、指示要应用以将由OTP存储器件135存储的内容245转换为后续地址240的转换过程的第四部分340、指示要移位以生成密钥125的位数的第五部分350。接口电路220可以从器件110接收该组输入位115,并从该组输入位115获得不同的信息。此外,接口电路220可以将获得的信息提供给内容处理器230,由此可以根据获得的信息执行间接过程。

图4A是示出根据一个实施例的示例间接过程的示图。在一个示例中,间接控制器238使或配置内容解码器234A以将内容410A、410B...410E转换为后续地址。在图4A所示的示例中,OTP存储器件135可以存储1024行的内容,其中每行包括16位。每行可以由对应的5位地址标识。在一种方法中,响应于应用于OTP存储器件135的地址,OTP存储器件135可以在五行中输出内容410A、410B、410C、410D、410E。在一个示例中,内容410A、410B、410C、410D可以共同表示用于后续地址或密钥125的64位信息。在一个示例中,内容410E包括ECC位。ECC逻辑电路236可以根据内容410E中的ECC位对内容410A-410D执行ECC校正,以生成ECC校正后的内容420A-420D。内容解码器234A可以从ECC逻辑电路236接收ECC校正后的内容420A-420D,并且将ECC校正后的内容420A-420D转换为5位地址。

在一个实施方式中,内容解码器234A包括一组XOR门。在一个示例中,内容解码器234A包括四个级别的XOR门,其中第一级别包括32个2位XOR门,第二级别包括16个2位XOR门,第三级别包括8个2位XOR门,第四级别包括4个2位XOR门。在第一级别中,可以对ECC校正后的内容(例如,420A、420B)的32位中的每个位和ECC校正后的内容(例如,420C、420D)的其余32位中的对应位执行XOR运算。类似地,在第二级别中,可以对从第一级别输出的16位的每个位和从第一级别输出的剩余的16位的对应位执行XOR运算。类似地,在第三级别中,可以对从第二级别输出的8位的每个位和从第二级别输出的剩余的8位的对应位执行XOR运算。在第四级别中,可以对从第三级别输出的4位的每个位和从第三级别输出的其他4位的对应位执行XOR运算。可以将从第四级别输出的4位和从第三级别输出的未作为第四级别的输入应用的1位输出为5位地址240。可以将5位地址240应用于OTP存储器件135以获得后续内容245。

图4B是示出根据一个实施例的示例间接过程的示图。图4B中所示的示例类似于图4A所示的示例,除了包括ECC位的内容410E和ECC校正后的内容420A-420D被应用于内容解码器234B作为输入。因此,内容解码器234B可以接收80位的输入位。在一个示例中,内容解码器234B包括四个级别的XOR门,其中第一级别包括40个2位XOR门,第二级别包括20个2位XOR门,第三级别包括10个2位XOR门,第四级别包括5个2位XOR门。在第一级别中,可以对ECC校正后的内容(例如,420A、420B)的40位中的每个位和ECC校正后的内容(例如,420C、420D)的其余40位中的对应位执行XOR运算。类似地,在第二级别中,可以对从第一级别输出的20位的每个位和从第一级别输出的剩余的20位的对应位执行XOR运算。类似地,在第三级别中,可以对从第二级别输出的10位的每个位和从第二级别输出的剩余的10位的对应位执行XOR运算。在第四级别中,可以对从第三级别输出的5位的每个位和从第三级别输出的剩余的5位的对应位执行XOR运算。从第四级别输出的5位可以被输出为5位地址240。可以将5位地址240应用于OTP存储器件135以获得后续内容245。

一方面,图4A的内容解码器234A包括比图4B的内容解码器234B数量更少的XOR门,使得内容解码器234A可以消耗更少的面积和功率。同时,内容解码器234B可以基于ECC位来生成5位地址240,使得内容解码器234B可以以附加复杂度来生成5位地址240。

图5是示出根据一些实施例的通过间接过程生成密钥125的示例过程500的流程图。在一个示例中,过程500由PUF控制器140执行。在一些实施例中,过程500由其他实体执行。在一些实施例中,过程500包括比图5所示的更多、更少或不同的操作。

在操作510中,PUF控制器140接收一组输入位115。PUF控制器140可以通过通信链路(例如,有线通信链路或无线通信链路)从器件110接收输入位串。

在操作520中,PUF控制器140获得要应用于OTP存储器件135的输入地址。在一种方法中,该组输入位115包括不同的部分。例如,该组输入位115包括对应于质询或输入地址240的第一部分310、指示要移位以获得输入地址240的位数的第二部分320、指示要应用的间接过程的数量的第三部分330、指示要应用以将由OTP存储器件135存储的内容245转换为后续地址240的转换过程的第四部分340以及指示要移位以生成密钥125的位数的第五部分350。在一个示例中,PUF控制器140将该组输入位的第一部分310应用于哈希函数以生成输入地址240。PUF控制140可以将输入位115的第一部分310移位由该组输入位115的第二部分320指示的位数并将移位部分应用于哈希函数。示例哈希函数包括在该组输入位115的第一部分310与移位部分之间的XOR运算。PUF控制器140还可以从该组输入位115获得不同的信息以用于其他操作(例如,操作530、540)。

在操作530中,PUF控制器140通过间接过程获得由OTP存储器件135存储的隐藏内容245。在一种方法中,PUF控制器140将输入地址240应用于OTP存储器件135,并且获得由OTP存储器件135在与输入地址240不同的隐藏地址处存储的隐藏内容245。PUF控制器140可以根据该组输入位115的第三部分330指示的数量来执行间接过程,并且可以执行由该组输入位115的第四部分340指示的转换过程。

在操作540中,PUF控制器140根据隐藏内容245生成密钥125。在一种方法中,PUF控制器140通过将隐藏内容245应用于哈希函数来生成密钥125。例如,密钥生成器270可以将输入位115的指示输入地址的第一部分310移位由该组输入位115的第五部分350指示的位数,并将移位部分应用于哈希函数。示例哈希函数包括i)与来自OTP存储器件135的隐藏内容245对应的地址和ii)移位部分之间的XOR运算。通过经由间接过程隐藏由OTP存储器件135存储的内容245并通过应用哈希,可以无法通过反向工程轻松发现隐藏内容245。此外,可以以安全的方式生成用于访问SRAM 160的密钥125。

图6是示出根据一些实施例的通过间接过程获得隐藏内容245的示例操作530的流程图。在一个示例中,操作530由PUF控制器140执行。在一些实施例中,操作530由其他实体执行。在一些实施例中,操作530包括比图6所示的更多、更少或不同的操作。

在操作610中,PUF控制器140获得由OTP存储器件135在地址处存储的内容。该地址可以是从操作520中基于该组输入位115获得的输入地址。PUF控制器140可以将该地址应用于OTP存储器件135,并且接收由OTP存储器件135在该地址处存储的内容。

在操作620中,PUF控制器140确定是否存在要执行的剩余间接过程。PUF控制器140可以包括存储剩余要应用的间接过程的数量的计数器。PUF控制器140可以接收输入位115的指示要应用的间接过程的数量的第三部分,并且设置计数器以存储或保持由输入位115的第三部分指示的数量。PUF控制器140可以根据计数器存储的数字来确定是否存在要应用的剩余间接过程。例如,PUF控制器140将由计数器存储的数字与预定数字(例如,“1”或“0”)进行比较。响应于计数器存储的数字不同于或大于预定数字,PUF控制器140可以确定存在要应用的剩余间接过程,并且进行至操作630。响应于计数器存储的数字等于预定数字,PUF控制器140可以确定不存在要应用的剩余间接过程,并且进行至操作650。

在操作630中,PUF控制器140根据在操作610中获得的内容245获得要应用的后续地址240。PUF控制器140可以选择由该组输入位115的第四部分340指示的转换过程,并且将选择的转换过程应用于内容245以获得后续地址240。PUF控制器140可以对内容245应用ECC校正,并且对内容的ECC校正后的位执行XOR运算,以获得具有比如以上关于图4A和图4B所述的内容245更少的位数的后续地址240。

在操作640中,在获得后续地址240之后,PUF控制器140可以将计数器存储的数字或值例如减少一。PUF控制器140可以将后续地址240应用于OTP存储器件135,并且进行至操作610。

在操作650中,响应于计数器存储的数字等于由该组输入位115的第三部分330指示的数字,PUF控制器140可以将从OTP存储器件135接收的最后内容245提供给密钥生成器270作为隐藏内容245。

图7是示出根据一些实施例的用于基于哈希函数获得要应用的地址的地址生成器232的示图。在一些实施例中,地址产生器232包括移位寄存器720和哈希逻辑电路730。这些组件可以一起操作以接收该组输入位115(或该组输入位115的第一部分310)并获得地址240以应用于OTP存储器件135。在一些实施例中,地址生成器232包括比图7所示的更多、更少或不同的组件。

在一些实施例中,移位寄存器720是将输入位115(或该组输入位115的第一部分310)移位一定位数的组件。可以由该组输入位115的第二部分320来指示要移位的位数。下面关于图8和图9提供移位寄存器720的示例实施方式。移位寄存器720可以将输入位115(或该组输入位115的第一部分310)移位以获得移位的位725,并且将移位的位725提供给哈希逻辑电路730。

在一些实施例中,哈希逻辑电路730是接收输入位115(或该组输入位115的第一部分310)和移位的位725,并且根据输入位115(或该组输入位115的第一部分310)和移位的位725生成要应用的输入地址240。在一种方法中,哈希逻辑电路730将输入位115(或该组输入位115的第一部分310)和移位的位725应用于哈希函数以生成输入地址240。示例哈希运算包括XOR运算。在一个示例中,哈希逻辑电路730包括一组XOR门,其对输入位115(或该组输入位115的第一部分310)中的每个位与移位的位725的对应位执行XOR运算以生成输入地址240。哈希逻辑电路730可以将输入地址240提供给OTP存储器件135。通过经由移位寄存器720和哈希逻辑电路730基于输入位115生成输入地址240,应用于OTP存储器件135以生成密钥125的输入地址240可以不暴露给外部器件。

图8是示出根据一些实施例的基于哈希函数生成密钥125的密钥生成器270的示图。在一些实施例中,密钥产生器270包括移位寄存器820和哈希逻辑电路830。这些组件可以一起操作以从内容解码器234接收输入地址240和与隐藏内容245对应的地址845,并且根据输入地址240和地址845生成密钥125以应用于OTP存储器件135。在一些实施例中,密钥生成器270包括比图8所示的更多、更少或不同的组件。

在一些实施例中,移位寄存器820是例如从地址生成器232接收地址240并且将地址240中的位(例如,5位)移位一定位数的组件。可以由该组输入位115的第五部分350来指示要移位的位数。移位寄存器820可以对地址240的位进行移位以获得移位的位825,并将移位的位825提供给哈希逻辑电路830。

在一些实施例中,哈希逻辑电路830是从移位寄存器820接收移位的位825和从内容解码器234接收地址845并根据移位的位825和地址845生成密钥125的组件。在一种方法中,哈希逻辑电路830将移位的位825和地址845应用于哈希函数以生成密钥125。示例哈希运算包括XOR运算。在一个示例中,哈希逻辑电路830包括一组XOR门,其对移位的位825的每个位与地址845的对应位执行XOR运算以生成密钥125。哈希逻辑电路830可以将密钥125提供给SRAM 160以实现对SRAM 160的访问。通过经由移位寄存器820和哈希逻辑电路830基于隐藏内容245和输入地址240生成密钥125,用于生成密钥125的隐藏内容245可以不暴露于外部器件。而且,可以以安全的方式生成密钥125。

图9是示出根据一些实施例的示例移位寄存器900的示图。移位寄存器900可以是图7的移位寄存器720。在一些实施例中,移位寄存器900包括一组触发器DFF0、DFF1...DFF15、一组多路复用器MUX0、MUX1...MUX15以及XNOR门910A、910B、910C。在一个配置中,多路复用器MUX0的第一输入接收输入位IN0,并且多路复用器MUX0的第二输入连接至XNOR门910A的输出。在一个配置中,触发器DFF0的输入D连接至多路复用器MUX0的输出。每个多路复用器MUXi包括:第一输入,其接收输入INi的对应位;以及第二输入,其耦合至前级触发器DFFi-1的输出。每个触发器DFFi包括连接至对应多路复用器MUXi的输出的输入D。在一个配置中,触发器DFF15的输出Q连接至XNOR门910C的输入。在一个配置中,触发器DFF11的输出Q连接至XNOR门910C的另一输入。在一个配置中,XNOR门910C的输出连接至XNOR门910B的输入。在一个配置中,触发器DFF2的输出Q连接至XNOR门910B的另一输入。在一个配置中,XNOR门910B的输出连接至XNOR门910A的输入。在该配置中,多路复用器MUX0...MUX15可以被配置为将输入位In0...In15提供给触发器DFF0...DFF15的输入。在将输入位In0...In15提供给触发器DFF0...DFF15的输入之后,移位寄存器900可以根据函数X16+X12+X3+X1+1来移位输入位。

图10是示出根据一些实施例的示例移位寄存器1000的示图。移位寄存器1000可以是图7的移位寄存器720。一方面,移位寄存器1000类似于图9的移位寄存器900,除了移位寄存器1000包括附加多路复用器MUX16...MUX31、附加触发器DFF16...DFF31以及XNOR门910D、910E,而不具有XNOR门910C、910B。因此,为简洁起见,在此省略其重复描述。一方面,触发器DFF31的输出连接至XNOR门910D的输入。一方面,触发器DFF21的输出连接至XNOR门910D的另一输入。一方面,XNOR门910D的输出连接至XNOR门910E的输入。一方面,触发器DFF1的输出连接至XNOR门910E的另一输入。一方面,XNOR门910E的输出连接至XNOR门910A的输入。在该配置中,多路复用器MUX0...MUX31可以被配置为将输入位In0...In31提供给触发器DFF0...DFF31的输入。在将输入位In0...In31提供给触发器DFF0...DFF31的输入之后,移位寄存器1000可以根据函数X32+X22+X2+X1+1来移位输入位。

图11是示出根据一些实施例的示例密钥生成器270的示图。在一些实施例中,密钥生成器270包括多路复用器1110、1170、1190、1195、乘法器1120、加法器1150、1180以及寄存器1130、1140、1160。这些组件可以一起操作以例如从OTP存储器件135接收存储在隐藏地址240处的隐藏内容245,并根据隐藏内容245生成输出1198。在一些实施例中,密钥生成器270包括比图11所示的更多、更少或不同的组件。

在一个配置中,多路复用器1110包括连接至OTP存储器件135以接收64位输入的第一输入以及连接至多路复用器1190的64位输出的第二输入。在一个配置中,多路复用器1110包括连接至乘法器1120的第一输入和加法器1150的第一输入的64位输出。在一个配置中,乘法器1120包括连接至多路复用器1195的64位输出的第二输入。乘法器1120还包括连接至寄存器1130的输入和寄存器1140的输入的64位输出。在一个配置中,寄存器1130的64位输出连接至加法器1180的第一输入和多路复用器1190的第一输入。在一个配置中,寄存器1140的64位输出连接至多路复用器1170的第一输入和加法器1150的第二输入。在一个配置中,加法器1150包括连接至寄存器1160的输入的64位输出,寄存器1160包括连接至多路复用器1170的第二输入的64位输出。一方面,多路复用器1170包括连接至加法器1180的第二输入的64位输出。在一个配置中,加法器1180包括连接至多路复用器1190的第二输入的64位输出。一方面,加法器1180的32位输出与加法器1180的另外32位输出交换,或者加法器1180的交换的输出被提供给多路复用器1190的第二输入。加法器1180的输出1198可以被提供为密钥125。在一个配置中,多路复用器1190包括连接至多路复用器1195的第一输入和多路复用器1110的第二输入的输出。在一个配置中,多路复用器1195包括第二输入以接收控制值CTR。

在该配置中,密钥生成器270可以基于隐藏内容(hidden content)245生成输出1198。一方面,多路复用器1110、1170、1190、1195可以被配置为执行以下运算:

y=x=ctr*hidden content;z=y+hidden content;

x=x*x+y;x=(x>>32)|(x<<32);/*轮次(round)1*/

x=x*x+z;x=(x>>32)|(x<<32);/轮次2*/

x=x*x+y;x=(x>>32)|(x<<32);/*轮次3*/

return(x*x+z)>>32;/*轮次4*/

一方面,密钥生成器270用作伪随机数生成器,以伪随机方式从隐藏内容245生成与隐藏内容不同的输出1198。可以将输出1198提供为用于使能对SRAM 160的访问的密钥125。因此,可以从外部器件隐藏用于使能对SRAM 160的访问的隐藏内容245。

现在参考图12,示出根据本公开的一些实施例的计算系统1200的示例框图。电路或布局设计者可以将计算系统1200用于集成电路设计。如本文所使用的“电路”是电组件的互连,诸如电阻器、晶体管、开关、电池、电感器或被配置为用于实现期望功能的其他类型的半导体器件。计算系统1200包括与存储器件1210相关联的主机设备1205。主机设备1205可以被配置为从一个或多个输入设备1215接收输入并且向一个或多个输出设备1220提供输出。主机设备1205可以被配置为分别经由适当的接口1225A、1225B和1225C与存储器件1210、输入设备1215和输出设备1220通信。可以在诸如计算机(例如,台式机、膝上型计算机、服务器、数据中心等)、平板电脑、个人数字助理、移动设备、其他手持式或便携式设备或适于使用主机设备1205执行示意图设计和/或布局设计的任何其他计算单元的各种计算设备中实现计算系统1200。

输入设备1215可以包括多种输入技术中的任何一种,诸如键盘、手写笔、触摸屏、鼠标、轨迹球、小键盘、麦克风、语音识别、运动识别、遥控器、输入端口、一个或多个按钮、转盘、操纵杆以及与主机设备1205相关联并允许诸如用户(例如,电路或布局设计者)的外部源将信息(例如,数据)输入主机设备和向主机设备发送指令的任何其他输入外围设备。类似地,输出设备1220可以包括各种输出技术,诸如外部存储器、打印机、扬声器、显示器、麦克风、发光二极管、耳机、视频器件以及被配置为从主机设备1205接收信息(例如,数据)的任何其他输出外围设备。输入主机设备1205和/或从主机设备输出的“数据”可以包括多种文本数据、电路数据、信号数据、半导体器件数据、图形数据、其组合或适用于使用计算系统1200处理的其他类型的模拟和/或数字数据中的任何一种。

主机设备1205包括一个或多个处理单元/处理器或与之相关联,例如中央处理单元(“CPU”)核1230A-1230N。CPU核1230A-1230N可以被实现为专用集成电路(“ASIC”)、现场可编程门阵列(“FPGA”)或任何其他类型的处理单元。每个CPU核1230A-1230N可以被配置为执行用于运行主机设备1205的一个或多个应用的指令。在一些实施例中,用于运行一个或多个应用的指令和数据可以被存储在存储器件1210内。主机设备1205还可以被配置为在存储器件1210内存储运行一个或多个应用的结果。因此,主机设备1205可以被配置为请求存储器件1210执行各种操作。例如,主机设备1205可以请求存储器件1210读取数据、写入数据、更新或删除数据和/或执行管理或其他操作。主机设备1205可以被配置为运行标准单元应用1235。标准单元应用1235可以是主机设备1205的用户可以使用、创建或修改电路的标准单元的计算机辅助设计或电子设计自动化软件套件的一部分。在一些实施例中,可以将执行或运行标准单元应用1235的指令存储在存储器件1210内。可以由一个或多个CPU核1230A-1230N使用来自存储器件1210的与标准单元应用相关联的指令来执行标准单元应用1235。在一个示例中,标准单元应用1235允许用户利用集成电路120或集成电路120的一部分的预先生成的示意图和/或布局设计来辅助集成电路设计。在完成集成电路的布局设计之后,可以通过制造厂根据布局设计来制造多个集成电路,例如包括集成电路120或集成电路120的一部分。

仍参考图12,存储器件1210包括存储器控制器1240,其被配置为从存储器阵列1245读取数据或向其写入数据。存储器阵列1245可以包括各种易失性和/或非易失性存储器。例如,在一些实施例中,存储器阵列1245可以包括NAND闪存核。在其他实施例中,存储器阵列1245可以包括NOR闪存核、SRAM核、动态随机存取存储器(DRAM)核、磁阻式随机存取存储器(MRAM)核、相变存储器(PCM)核、电阻式随机存取存储器(ReRAM)核、3D XPoint存储器核、铁电随机存取存储器(FeRAM)核以及适于在该存储器阵列内使用的其他类型的存储器核。存储器阵列1245内的存储器可以由存储器控制器1240单独地和独立地控制。换句话说,存储器控制器1240可以被配置为单独地并且独立地与存储器阵列1245内的每个存储器通信。通过与存储器阵列1245通信,存储器控制器1240可以被配置为响应于从主机设备1205接收的指令从存储器阵列读取数据或向其写入数据。尽管示出为存储器件1210的一部分,但是在一些实施例中,存储器控制器1240可以是主机设备1205的一部分或计算系统1200的另一组件的一部分并且与存储器件相关联。存储器控制器1240可以被实现为软件、硬件、固件或其组合形式的逻辑电路,以执行本文描述的功能。例如,在一些实施例中,存储器控制器1240可以被配置为在从主机设备1205接收到请求之后,检索与存储在存储器件1210的存储器阵列1245中的标准单元应用1235相关联的指令。

应当理解,在图12中仅示出和描述计算系统1200的一些组件。但是,计算系统1200可以包括其他组件,诸如各种电池和电源、联网接口、路由器、交换机、外部存储系统、控制器等。一般而言,计算系统1200可以包括在执行本文功能时需要或认为合乎需要的多种硬件、软件和/或固件组件中的任何一种。类似地,主机设备1205、输入设备1215、输出设备1220和包括存储器控制器1240和存储器阵列1245的存储器件1210可以包括在执行本文功能时被认为是必要或期望的其他硬件、软件和/或固件组件。

本说明书的一个方面涉及一种集成电路。在一些实施例中,集成电路包括一次可编程(OTP)存储器件。在一些实施例中,集成电路包括耦合至OTP存储器件的控制器。在一些实施例中,控制器被配置为接收指示OTP存储器件的输入地址的一组输入位,并且基于输入地址通过多个间接过程来获得由OTP存储器件在隐藏地址处存储的隐藏内容。在一些实施例中,每个间接过程包括:i)基于由OTP存储器件存储在地址处的内容来识别OTP存储器件的后续地址;以及ii)获得由OTP存储器件在后续地址处存储的后续内容。在一些实施例中,控制器被配置为基于由OTP存储器件在隐藏地址处存储的隐藏内容来生成密钥。

在上述集成电路中,控制器用于:根据该组输入位的一部分获得OTP存储器件的输入地址,获取由OTP存储器件在输入地址处存储的第一内容,并且根据第一内容获得OTP存储器件的第二地址。

在上述集成电路中,控制器用于通过将由OTP存储器件在具有第一位数的地址处存储的内容转换为OTP存储器件的具有比第一位数少的第二位数的后续地址,基于由OTP存储器件在地址处存储的内容来识别OTP存储器件的后续地址。

在上述集成电路中,控制器包括一组XOR门,以针对每个间接过程将由OTP存储器件在具有第一位数的地址处存储的内容转换为OTP存储器件的具有第二位数的后续地址。

在上述集成电路中,该组输入位指示要应用以将由OTP存储器件存储的内容转换为OTP存储器件的后续地址的过程,其中,控制器用于:选择由该组输入位指示的过程,并且对于每个间接过程,通过选择的过程将由OTP存储器件存储的内容转换为OTP存储器件的后续地址。

在上述集成电路中,该组输入位指示要应用以生成密钥的多个间接过程,其中,控制器用于通过多个间接过程获得由OTP存储器件在隐藏地址处存储的隐藏内容。

在上述集成电路中,控制器用于:通过根据哈希函数转换该组输入位的一部分来获得OTP存储器件的输入地址。

在上述集成电路中,控制器包括:移位寄存器,用于移位该组输入位的一部分,和哈希逻辑电路,用于将i)该组输入位的一部分和ii)该组输入位的移位部分应用于哈希函数以获得输入地址。

在上述集成电路中,控制器用于:根据哈希函数,将由OTP存储器件在隐藏地址处存储的隐藏内容转换为密钥。

在上述集成电路中,控制器包括:移位寄存器,用于移位该组输入位的一部分,和哈希逻辑电路,用于将i)由OTP存储器件在隐藏地址处存储的隐藏内容和ii)该组输入位的移位部分应用于哈希函数以生成密钥。

本说明书的一个方面涉及一种授权访问由集成电路存储的内容的方法。在一些实施例中,该方法包括由控制器接收指示一次可编程(OTP)存储器件的第一地址的一组输入位。在一些实施例中,该方法包括由控制器获得由OTP存储器件在第一地址处存储的第一内容。在一些实施例中,该方法包括由控制器基于第一内容获得OTP存储器件的第二地址。在一些实施例中,该方法包括由控制器获得由OTP存储器件在第二地址处存储的第二内容。在一些实施例中,该方法包括由控制器基于第二内容生成密钥。

在上述方法中,由控制器基于第一内容获得OTP存储器件的第二地址包括:由控制器将具有第一位数的第一内容转换为具有比第一位数少的第二位数的第二地址。

在上述方法中,该组输入位附加地指示要应用以生成密钥的多个间接过程,其中,每个间接过程包括:i)基于由OTP存储器件在一地址处存储的内容来识别OTP存储器件的后续地址,和ii)获得由OTP存储器件在后续地址处存储的后续内容,方法还包括:由控制器通过由该组输入位指示的多个间接过程,获得由OTP存储器件在隐藏地址处存储的隐藏内容。

在上述方法中,生成密钥包括根据哈希函数转换隐藏内容以获得密钥。

在上述方法中,该组输入位指示要应用以将由OTP存储器件存储的第一内容转换为OTP存储器件的第二地址的过程,方法还包括:由控制器选择由该组输入位指示的要应用的过程;和通过该过程将由OTP存储器件存储的第一内容转换为OTP存储器件的第二地址。

在上述方法中,还包括:由控制器通过根据哈希函数转换该组输入位的一部分来获得OTP存储器件的第一地址。

本说明书的一个方面涉及一种授权访问由集成电路存储的内容的方法。在一些实施例中,该方法包括由控制器接收一组输入位。在一些实施例中,该方法包括由控制器根据哈希函数将该组输入位转换为输入地址。在一些实施例中,该方法包括由控制器将输入地址应用于一次可编程(OTP)存储器件。在一些实施例中,该方法包括由控制器根据应用的输入地址基于由OTP存储器件存储的隐藏内容来生成针对该组输入位的密钥。

在上述方法中,由控制器将该组输入位转换为输入地址包括:通过移位寄存器移位该组输入位的一部分,以及由哈希生成器将i)该组输入位的部分和ii)该组输入位的移位部分应用于哈希函数以生成输入地址。

在上述方法中,移位寄存器根据由该组输入位指示的要移位的位数来移位该组输入位的部分。

在上述方法中,还包括:由控制器基于输入地址通过多个间接过程,获得由第一存储器件存储的隐藏内容,每个间接过程包括:i)基于由第一存储器件在一地址处存储的内容,标识第一存储器件的后续地址,和ii)获得由第一存储器件在后续地址处存储的后续内容。

以上论述了若干实施例的部件,使得本领域的技术人员可以更好地理解本发明的各个实施例。本领域技术人员应当理解,他们可以容易地将本公开用作设计或修改其他过程和结构的基础,以实现与本文介绍的实施例相同的目的和/或实现相同的优点。本领域技术人员也应该意识到,这些等效结构并不背离本发明的精神和范围,并且在不背离本发明的精神和范围的情况下,可以进行多种变化、替换以及改变。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:物理不可克隆功能器件和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类