CN115292084A - 一种数据生成方法、装置、电子设备及存储介质 - Google Patents
一种数据生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115292084A CN115292084A CN202210993515.0A CN202210993515A CN115292084A CN 115292084 A CN115292084 A CN 115292084A CN 202210993515 A CN202210993515 A CN 202210993515A CN 115292084 A CN115292084 A CN 115292084A
- Authority
- CN
- China
- Prior art keywords
- puf
- original random
- data
- chip
- random bits
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims abstract description 23
- 238000012937 correction Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了一种数据生成方法、装置、电子设备及存储介质,其中,该方法包括:响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;基于第一原始随机位确定针对芯片系统的第一物理不可克隆功能PUF数字;基于第一原始随机位和第二原始随机位生成中间辅助数据;中间辅助数据用于在正常运行芯片系统的过程中产生第二PUF数字,第二PUF数字与第一PUF数字相同。本公开中的中间辅助数据可以有助于在正常运行芯片系统中产生第二PUF数字,而非直接作为PUF数字,在确保了生成可用的PUF数字的同时,还降低了PUF数字泄漏可能产生的安全隐患,进一步确保了芯片安全性。
Description
技术领域
本公开涉及信息安全技术领域,具体而言,涉及一种数据生成方法、装置、电子设备及存储介质。
背景技术
物理不可克隆功能(Physical Unclonable Function,PUF)作为近年来不断发展的一种信息安全技术,具有不可预测、不可篡改等各种优点,可以实现更高的安全性,用途广泛,例如可以应用于固件保护、身份验证、签名等业务场景。
相关技术中可以使用各种方式来生成PUF数字,但这大都需要改变物理设计,例如,可以在集成电路芯片(Integrated Circuit Chip,IC芯片)上专门设计特殊的实施电路,并利用集成电路制造工艺的随机偏差,来实现其唯一且不可复制的特性。
针对不同的应用场合,上述PUF数字生成的方式需要设计不同的实施电路,而实施电路的复杂度通常较高,这导致芯片的成本和功耗整体偏高,实用性不佳。
发明内容
本公开实施例至少提供一种数据生成方法、装置、电子设备及存储介质,以自动生成PUF数字,提升芯片安全性。
第一方面,本公开实施例提供了一种数据生成方法,包括:
响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
基于所述第一原始随机位确定针对所述芯片系统的第一物理不可克隆功能PUF数字;
基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据;所述中间辅助数据用于在正常运行所述芯片系统的过程中产生第二PUF数字,所述第二PUF数字与第一PUF数字相同。
在一种可能的实施方式中,所述基于所述第一原始随机位确定针对所述芯片系统的第一物理不可克隆功能PUF数字,包括:
对所述第一原始随机位进行第一哈希运算,得到第一哈希值;
将所述第一哈希值确定为第一PUF数字。
在一种可能的实施方式中,所述基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据,包括:
对所述第二原始随机位进行第二哈希运算,得到第二哈希值;
对所述第二哈希值进行纠错编码,得到第一编码数字,所述第一编码数字的位数与所述第一原始随机位的位数相同;
将所述第一编码数字与所述第一原始随机位进行异或运算,得到所述中间辅助数据。
在一种可能的实施方式中,在所述基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据之后,所述方法还包括:
将所述中间辅助数据存储至目标存储介质。
在一种可能的实施方式中,所述方法还包括:
响应于所述芯片系统正常运行的过程,从所述目标存储介质中读取所述中间辅助数据;以及,从所述第一原始随机位对应的内存扇区获取新的第一原始随机位;
基于所述新的第一原始随机位以及所述中间辅助数据,确定针对所述芯片系统的第二PUF数字。
在一种可能的实施方式中,所述基于所述新的第一原始随机位以及所述中间辅助数据,确定针对所述芯片系统的第二PUF数字,包括:
将所述新的第一原始随机位和所述中间辅助数据进行异或运算,得到需要进行纠错解码的解码前数据;
对所述解码前数据进行纠错解码,得到第一解码数字,其中,在所述解码前数据与所述第一编码数字之间的差异符合预设纠错要求的情况下,所述第一解码数字与所述第二哈希值相同;
基于所述第一解码数字以及所述中间辅助数据,确定所述第二PUF数字。
在一种可能的实施方式中,所述基于所述第一解码数字以及所述中间辅助数据,确定所述第二PUF数字,包括:
对所述第一解码数字进行纠错编码,得到第二编码数字,所述第二编码数字与所述第一编码数字相同;
将所述第二编码数字与所述中间辅助数据进行异或运算,得到需要进行哈希运算的哈希前数据;所述哈希前数据与所述第一原始随机位相同;
对所述哈希前数据进行第一哈希运算,得到所述第二PUF数字。
第二方面,本公开实施例还提供了一种数据生成装置,包括:
获取模块,用于响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
第一确定模块,用于基于所述第一原始随机位确定针对所述芯片系统的第一物理不可克隆功能PUF数字;
生成模块,用于基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据;所述中间辅助数据用于在正常运行所述芯片系统的过程中产生第二PUF数字,所述第二PUF数字与第一PUF数字相同。
第三方面,本公开实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一项所述的数据生成方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一项所述的数据生成方法。
采用上述数据生成方法、装置、电子设备及存储介质,在芯片系统初始化的过程中,可以首先从两个内存扇区获取对应的两个原始随机位(即第一原始随机位和第二原始随机位),而后基于第一原始随机位确定在初始化的过程中产生的第一PUF数字,并能够基于两个原始随机位生成中间辅助数据,由于该中间辅助数据可以有助于在正常运行芯片系统中产生第二PUF数字,而非直接作为PUF数字,在确保了生成可用的PUF数字的同时,还降低了PUF数字泄漏可能产生的安全隐患,进一步确保了芯片安全性。
本公开的其他优点将配合以下的说明和附图进行更详细的解说。
应当理解,上述说明仅是本公开技术方案的概述,以便能够更清楚地了解本公开的技术手段,从而可依照说明书的内容予以实施。为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本公开的具体实施方式。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1示出了本公开实施例所提供的一种数据生成方法的流程图;
图2示出了本公开实施例所提供的一种数据生成方法的应用示意图;
图3示出了本公开实施例所提供的一种数据生成装置的示意图;
图4示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本公开实施方式的描述中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个这一特征。在本公开实施方式的描述中,除非另有说明,“多个”的含义是两个或两个以上。
经研究发现,PUF数字对于各种芯片系统的安全性具有非常关键的作用。相关技术中可以使用各种方式来生成PUF数字,但这大都需要改变物理设计,例如,可以在集成电路芯片(Integrated Circuit Chip,IC芯片)上专门设计特殊的实施电路,并利用集成电路制造工艺的随机偏差,来实现其唯一且不可复制的特性。
针对不同的应用场合,上述PUF数字生成的方式需要设计不同的实施电路,而实施电路的复杂度通常较高,这导致芯片的成本和功耗整体偏高,实用性不佳。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开提供了至少一种数据生成方案,以自动生成PUF数字,缓解了复杂的电路设计所带来的芯片成本及功耗较高的问题,具有更高的实用性。
本方案主要是考虑到电子设备系统(例如芯片)在每次上电时内存扇区的内容在没有进行初始化的情况下是随机的,但是具有一定的确定性,也就是对于同一颗芯片每两次上电之间内容的变化不大,对于不同的芯片未初始化的内容则存在较大的不同。基于此,本方案在生成PUF数字的过程中使用的源数据可以是内存扇区中的原始随机位。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据生成方法进行详细介绍,本公开实施例所提供的数据生成方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、手持设备、车载设备、可穿戴设备等。在实际应用中,这里的终端设备还可以是在相关应用场景下的设备,例如,可以是物联网设备,在此不做具体的限制。
在一些可能的实现方式中,该数据生成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的数据生成方法的流程图,所述方法包括步骤S101~S103,其中:
S101:响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
S102:基于第一原始随机位确定针对芯片系统的第一物理不可克隆功能PUF数字;
S103:基于第一原始随机位和第二原始随机位生成中间辅助数据;中间辅助数据用于在正常运行芯片系统的过程中产生第二PUF数字,第二PUF数字与第一PUF数字相同。
为了便于理解本公开实施例提供的数据生成方法,接下来首先对该方法的应用场景进行简单说明。本公开实施例中的数据生成方法主要可以应用于IC芯片安全领域,生成的PUF数字可以有助于确保进行固件保护、身份验证、签名等各种业务场景,这里可以是直接利用生成的PUF数字进行安全保护,还可以是在对PUF数字进行相关计算后,利用计算结果进行安全保护,在此不做具体的限制。
本公开实施例提供的数据生成方法可以在芯片系统初始化的过程中,生成中间辅助数据,该中间辅助数据能够在芯片系统正常运行的情况下生成PUF数字。尽管PUF数字本身的随机性,但在应用于同一芯片系统时,其PUF数字应该保持一致性,正式基于这样的考虑,本公开实施例才提供了一种双PUF数字生成方案,该方案在初始化系统生成第一PUF数字的过程中,还可以生成中间辅助数据,该辅助用于能够产生正常运行过程中的第二PUF数字,且该第二PUF数字与第一PUF数字相同。
第一PUF数字可以是基于第一原始随机位确定的,中间辅助数据则可以是第一原始随机位和第二原始随机位一同确定的。这里的两个原始随机位(即第一原始随机位和第二原始随机位)可以是从对应的两个内存扇区获取的,不同的内存扇区对应不同的存储位置。
基于第一原始随机位可以直接确定在初始化过程中的第一PUF数字,该第一PUF数字可以作为芯片系统的基准PUF数字,一旦确定了第一PUF数字,针对芯片系统将固定有一个PUF数字,该PUF数字具有可靠性、不可预测性和唯一性。
基于第一原始随机位和第二原始随机位可以生成中间辅助数据,该中间辅助数据在完成初始化过程之后,可以存储在非易失性存储介质中,这样,在芯片系统正常运行的过程中,即可以从非易失性存储介质中读取中间辅助数据,利用中间辅助数据可以生成正常运行过程中的第二PUF数字,该第二PUF数字与上述第一PUF数字相同,这样,不管是在哪次运行芯片系统,均可以确保针对同一芯片系统生成具有唯一性的PUF数字。
这里的PUF数字利用的是芯片系统内存参数的随机变化来生成芯片的唯一值,这些变化是不可预测的,生成的值也是如此,因而可以以充当设备的“指纹”,即使攻击方捕获到中间辅助数据,但也无法复原出PUF数字,对侵入式攻击具有很强的抵抗力,很大程度上也可以抵抗逆向工程,因而可以被广泛应用,例如,PUF生成的密钥用于片上非易失性存储器(例如EEPROM,Flash或OTP)中建立安全库;再如,PUF生成的密钥可以通过加密保护一些软件算法;还如,将PUF这一随机数发送到要进行身份验证的设备,然后该设备使用其私钥对随机数进行签名等。
接下来将分别结合初始化以及正常运行芯片系统的过程介绍第一PUF数字和第二PUF数字的生成。
第一方面:本公开实施例可以按照如下步骤生成第一PUF数字:
步骤一、对第一原始随机位进行第一哈希运算,得到第一哈希值;
步骤二、将第一哈希值确定为第一PUF数字。
这里,在确定第一PUF数字的过程中,可以基于对第一原始随机位的第一哈希运算来确定。有关哈希运算即接受一个不限长度的输入(input)返回一个固定长度的输出(output),这里是将给定的第一原始随机位映射为一个固定长度的哈希数的过程,这里的固定长度的哈希数可以是一个256bit的字符串。
第二方面:本公开实施例可以按照如下步骤生成第二PUF数字:
步骤一、响应于芯片系统正常运行的过程,从目标存储介质中读取中间辅助数据;以及,从第一原始随机位对应的内存扇区获取新的第一原始随机位;
步骤二、基于新的第一原始随机位以及中间辅助数据,确定针对芯片系统的第二PUF数字。
这里的第二PUF数字可以是基于新的第一原始随机位以及从目标存储介质中读取的中间辅助数据生成的。目标存储介质即为上述非易失性存储介质(如Flash等)。
由于新的第一原始随机位是从第一原始随机位所对应的内存扇区获取的,也即,两个第一原始随机位可以是从相同的随机位源处读取的,相同位源意味着正常运行过程中随机位的生成方式与启动过程中的方式完全相同。例如,两个随机位可以从同一块未启动的系统内存中读取。通常情况下,由于芯片系统电气过程中的不确定性,这使得两个随机位通常不相同,但通常仅包括一小部分不同的位,利用这一特性,将新的原始随机位结合初始化产生的中间辅助数据,可以复原出初始化过程中生成的PUF数字,也即,可以确定出针对正常运行的芯片系统的第二PUF数字。
考虑到中间辅助数据的生成,对于第二PUF数字生成的关键作用,接下来可以着重对生成中间辅助数据的过程进行说明,具体包括如下步骤:
步骤一、对第二原始随机位进行第二哈希运算,得到第二哈希值;
步骤二、对第二哈希值进行纠错编码,得到第一编码数字,第一编码数字的位数与第一原始随机位的位数相同;
步骤三、将第一编码数字与第一原始随机位进行异或运算,得到中间辅助数据。
这里,首先可以对第二原始随机位进行第二哈希运算,而后基于运算得到的第二哈希值进行纠错编码,得到第一编码数字,最后基于第一编码数字和第一原始随机位之间的异或运算,得到中间辅助数据。
上述异或操作的逻辑关系是:当AB不同时,输出P=1;当AB相同时,输出P=0,也即,通过纠错编码得到的第一编码数字很大程度上可以表征第一原始随机位的相关特性,这样所确定出的中间辅助数据能够使得在后续正常运行的过程中,通过纠错解码的方式复原出第一原始随机位,从而可以确定出与第一PUF数字相同的第二PUF数字。
为了更好的理解上述中间辅助数据的生成过程,可以通过图2所示的应用示意图进行进一步说明。
如图2所示,当IC芯片上电、第一次运行启动时可以生成中间辅助数据(H)。首先,从内存扇区1(Memory Sector1)和内存扇区2(Memory Sector2)分别获取第一原始随机位和第二原始随机位,两个随机位(Raw Bits)可以来自一块未初始化的系统内存,由于工艺差异,这些位通常因一个IC与另一个IC不同。
其中,第一个原始随机位用于创建向量V(对应第一原始随机位),其长度与第一编码数字C相同,对第二个原始随机位进行哈希运算(对应Hash)以创建向量R(对应第二哈希值)。R使用块纠错码(Block Encode)进行编码,以生成C。
一方面,V和C异或生成向量H。H作为中间辅助数据,可以存储在Flash等非易失性存储器中;另一方面,V被哈希以创建安全密钥K(即第一PUF数字)。这里的K或其变化数可以用于保护IC上的信息,例如,固件保护、身份验证、签名等。
在获取到中间辅助数据的情况下,可以按照如下步骤确定第二PUF数字,具体可以通过如下步骤来实现:
步骤一、将新的第一原始随机位和中间辅助数据进行异或运算,得到需要进行纠错解码的解码前数据;
步骤二、对解码前数据进行纠错解码,得到第一解码数字,其中,在解码前数据与第一编码数字之间的差异符合预设纠错要求的情况下,第一解码数字与第二哈希值相同;
步骤三、基于第一解码数字以及中间辅助数据,确定第二PUF数字。
这里,可以异常通过异或运算、纠错解码确定第一解码数字。第一解码数字可以是对应于纠错编码的反向操作,也即,可以通过纠错解码得到的第一解码数字很大程度上可以表征新的第一原始随机位的相关特性,而后结合中间辅助数据可以复原出第一原始随机位,进而得到具有唯一性的PUF数字。
其中,有关基于第一解码数字和中间辅助数据得到第二PUF数字,具体包括如下步骤:
步骤一、对第一解码数字进行纠错编码,得到第二编码数字,第二编码数字与第一编码数字相同;
步骤二、将第二编码数字与中间辅助数据进行异或运算,得到需要进行哈希运算的哈希前数据;哈希前数据与第一原始随机位相同;
步骤三、对哈希前数据进行第一哈希运算,得到第二PUF数字。
这里,针对解码得到的第一解码数字可以进行纠错编码,而后依次通过异或运算、哈希运算可以复原出第一PUF数字。
为了更好的理解上述第二PUF数字的生成过程,同样可以通过图2所示的应用示意图进行进一步说明。
如图2所示,在IC芯片初始化过程后再次上电时使用正常运行模式。这里,首先可以从内存扇区1读取相同的随机位以创建向量V‘(对应新的第一原始随机位)。V’通常与V不同,可以包含一小部分不同的位。向量V‘与存储的中间辅助数据H进行异或运算以生成解码前数据C’。
由于V‘可能不同于V,因此C’也不同于C。这里,针对C‘使用块纠错解码(BlockDecode)过程解码为第一解码数字R‘。这里,只要C和C’之间的差异数量在纠错范围内,R’将与R相同。
然后,使用与初始化过程中相同的块纠错码重新编码R‘,并生成第二编码数字C’‘。C’‘也将与C相同。然后C’‘与H进行异或以重现哈希前数据V’‘,这也将是相同的V。V”通过哈希过程生成安全密钥K’(即第二PUF数字),与第一PUF数字K相同。
可知的是,本公开实施例中,两个未初始化内存扇区可用于生成PUN进程的原始位。其中一扇区作为密钥的种子,另一个扇区用作种子,为块纠错码创建随机信息位以进行保护。块纠错密钥比特码用于生成中间辅助数据。块纠错码用于在IC的电源周期之间生成一致的密钥,密钥随机使用哈希函数生成系统唯一密钥以用于安全功能,这使得芯片的整体成本以及功耗都较低,从而具有更广泛的实用性。
例如,随着物联网(Internet of Things,IoT)的快速兴起,这加快了对加密的需求。对于大量的物联网设备而言,如果采用现有的电路改造方案来获取PUF,这将对设备生产及其应用带来严重的挑战,利用本公开实施例提供的上述数据生成方案,可以为物理网及其设备的应用提供了更为安全性的环境,还可以更大程度地降低成本。
在本说明书的描述中,参考术语“一些可能的实施方式”、“一些实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方式或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式或示例以及不同实施方式或示例的特征进行结合和组合。
关于本公开实施方式的方法流程图,将某些操作描述为以一定顺序执行的不同的步骤。这样的流程图属于说明性的而非限制性的。可以将在本文中所描述的某些步骤分组在一起并且在单个操作中执行、可以将某些步骤分割成多个子步骤、并且可以以不同于在本文中所示出的顺序来执行某些步骤。可以由任何电路结构和/或有形机制(例如,由在计算机设备上运行的软件、硬件(例如,处理器或芯片实现的逻辑功能)等、和/或其任何组合)以任何方式来实现在流程图中所示出的各个步骤。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据生成方法对应的数据生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图3所示,为本公开实施例提供的一种数据生成装置的示意图,装置包括:获取模块301、第一确定模块302、生成模块303;其中,
获取模块301,用于响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
第一确定模块302,用于基于第一原始随机位确定针对芯片系统的第一物理不可克隆功能PUF数字;
生成模块303,用于基于第一原始随机位和第二原始随机位生成中间辅助数据;中间辅助数据用于在正常运行芯片系统的过程中产生第二PUF数字,第二PUF数字与第一PUF数字相同。
采用上述数据生成装置,在芯片系统初始化的过程中,可以首先从两个内存扇区获取对应的两个原始随机位(即第一原始随机位和第二原始随机位),而后基于第一原始随机位确定在初始化的过程中产生的第一PUF数字,并能够基于两个原始随机位生成中间辅助数据,由于该中间辅助数据可以有助于在正常运行芯片系统中产生第二PUF数字,而非直接作为PUF数字,在确保了生成可用的PUF数字的同时,还降低了PUF数字泄漏可能产生的安全隐患,进一步确保了芯片安全性。
在一种可能的实施方式中,第一确定模块302,用于按照如下步骤基于第一原始随机位确定针对芯片系统的第一物理不可克隆功能PUF数字:
对第一原始随机位进行第一哈希运算,得到第一哈希值;
将第一哈希值确定为第一PUF数字。
在一种可能的实施方式中,生成模块303,用于按照如下步骤基于第一原始随机位和第二原始随机位生成中间辅助数据:
对第二原始随机位进行第二哈希运算,得到第二哈希值;
对第二哈希值进行纠错编码,得到第一编码数字,第一编码数字的位数与第一原始随机位的位数相同;
将第一编码数字与第一原始随机位进行异或运算,得到中间辅助数据。
在一种可能的实施方式中,在基于第一原始随机位和第二原始随机位生成中间辅助数据之后,上述装置还包括:
存储模块304,用于将中间辅助数据存储至目标存储介质。
在一种可能的实施方式中,上述装置还包括:
第二确定模块305,用于响应于芯片系统正常运行的过程,从目标存储介质中读取中间辅助数据;以及,从第一原始随机位对应的内存扇区获取新的第一原始随机位;基于新的第一原始随机位以及中间辅助数据,确定针对芯片系统的第二PUF数字。
在一种可能的实施方式中,第二确定模块305,用于按照如下步骤基于新的第一原始随机位以及中间辅助数据,确定针对芯片系统的第二PUF数字:
将新的第一原始随机位和中间辅助数据进行异或运算,得到需要进行纠错解码的解码前数据;
对解码前数据进行纠错解码,得到第一解码数字,其中,在解码前数据与第一编码数字之间的差异符合预设纠错要求的情况下,第一解码数字与第二哈希值相同;
基于第一解码数字以及中间辅助数据,确定第二PUF数字。
在一种可能的实施方式中,第二确定模块305,用于按照如下步骤基于第一解码数字以及中间辅助数据,确定第二PUF数字:
对第一解码数字进行纠错编码,得到第二编码数字,第二编码数字与第一编码数字相同;
将第二编码数字与中间辅助数据进行异或运算,得到需要进行哈希运算的哈希前数据;哈希前数据与第一原始随机位相同;
对哈希前数据进行第一哈希运算,得到第二PUF数字。
需要说明的是,本申请实施方式中的装置可以实现前述方法的实施方式的各个过程,并达到相同的效果和功能,这里不再赘述。
本公开实施例还提供了一种电子设备,如图4所示,为本公开实施例提供的电子设备结构示意图,包括:处理器401、存储器402、和总线403。存储器402存储有处理器401可执行的机器可读指令(比如,图3中的装置中获取模块301、第一确定模块302、生成模块303对应的执行指令等),当电子设备运行时,处理器401与存储器402之间通过总线403通信,机器可读指令被处理器401执行时执行如下处理:
响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
基于第一原始随机位确定针对芯片系统的第一物理不可克隆功能PUF数字;
基于第一原始随机位和第二原始随机位生成中间辅助数据;中间辅助数据用于在正常运行芯片系统的过程中产生第二PUF数字,第二PUF数字与第一PUF数字相同。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
本申请中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,对于装置、设备和计算机可读存储介质实施方式而言,由于其基本相似于方法实施方式,所以其描述进行了简化,相关之处可参见方法实施方式的部分说明即可。
本申请实施方式提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
本领域内的技术人员应明白,本公开的实施方式可提供为方法、装置(设备或系统)、或计算机可读存储介质。因此,本公开可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机可读存储介质的形式。
本公开是参照根据本公开实施方式的方法、装置(设备或系统)、和计算机可读存储介质的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种数据生成方法,其特征在于,包括:
响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
基于所述第一原始随机位确定针对所述芯片系统的第一物理不可克隆功能PUF数字;
基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据;所述中间辅助数据用于在正常运行所述芯片系统的过程中产生第二PUF数字,所述第二PUF数字与第一PUF数字相同。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一原始随机位确定针对所述芯片系统的第一物理不可克隆功能PUF数字,包括:
对所述第一原始随机位进行第一哈希运算,得到第一哈希值;
将所述第一哈希值确定为第一PUF数字。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据,包括:
对所述第二原始随机位进行第二哈希运算,得到第二哈希值;
对所述第二哈希值进行纠错编码,得到第一编码数字,所述第一编码数字的位数与所述第一原始随机位的位数相同;
将所述第一编码数字与所述第一原始随机位进行异或运算,得到所述中间辅助数据。
4.根据权利要求3所述的方法,其特征在于,在所述基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据之后,所述方法还包括:
将所述中间辅助数据存储至目标存储介质。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述芯片系统正常运行的过程,从所述目标存储介质中读取所述中间辅助数据;以及,从所述第一原始随机位对应的内存扇区获取新的第一原始随机位;
基于所述新的第一原始随机位以及所述中间辅助数据,确定针对所述芯片系统的第二PUF数字。
6.根据权利要求5所述的方法,其特征在于,所述基于所述新的第一原始随机位以及所述中间辅助数据,确定针对所述芯片系统的第二PUF数字,包括:
将所述新的第一原始随机位和所述中间辅助数据进行异或运算,得到需要进行纠错解码的解码前数据;
对所述解码前数据进行纠错解码,得到第一解码数字,其中,在所述解码前数据与所述第一编码数字之间的差异符合预设纠错要求的情况下,所述第一解码数字与所述第二哈希值相同;
基于所述第一解码数字以及所述中间辅助数据,确定所述第二PUF数字。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一解码数字以及所述中间辅助数据,确定所述第二PUF数字,包括:
对所述第一解码数字进行纠错编码,得到第二编码数字,所述第二编码数字与所述第一编码数字相同;
将所述第二编码数字与所述中间辅助数据进行异或运算,得到需要进行哈希运算的哈希前数据;所述哈希前数据与所述第一原始随机位相同;
对所述哈希前数据进行第一哈希运算,得到所述第二PUF数字。
8.一种数据生成装置,其特征在于,包括:
获取模块,用于响应于芯片系统初始化的过程,从两个内存扇区对应获取第一原始随机位和第二原始随机位;
第一确定模块,用于基于所述第一原始随机位确定针对所述芯片系统的第一物理不可克隆功能PUF数字;
生成模块,用于基于所述第一原始随机位和所述第二原始随机位生成中间辅助数据;所述中间辅助数据用于在正常运行所述芯片系统的过程中产生第二PUF数字,所述第二PUF数字与第一PUF数字相同。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一项所述的数据生成方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一项所述的数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210993515.0A CN115292084A (zh) | 2022-08-18 | 2022-08-18 | 一种数据生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210993515.0A CN115292084A (zh) | 2022-08-18 | 2022-08-18 | 一种数据生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115292084A true CN115292084A (zh) | 2022-11-04 |
Family
ID=83830150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210993515.0A Pending CN115292084A (zh) | 2022-08-18 | 2022-08-18 | 一种数据生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292084A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028992A (zh) * | 2023-02-23 | 2023-04-28 | 广东高云半导体科技股份有限公司 | 一种SoC芯片及其实现数据安全检测的方法 |
-
2022
- 2022-08-18 CN CN202210993515.0A patent/CN115292084A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028992A (zh) * | 2023-02-23 | 2023-04-28 | 广东高云半导体科技股份有限公司 | 一种SoC芯片及其实现数据安全检测的方法 |
CN116028992B (zh) * | 2023-02-23 | 2024-06-07 | 广东高云半导体科技股份有限公司 | 一种SoC芯片及其实现数据安全检测的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693754B2 (en) | Aggregate GHASH-based message authentication code (MAC) over multiple cachelines with incremental updates | |
KR102026757B1 (ko) | 단일 등록을 이용한 메모리 기반 puf에 대한 소프트 결정 에러 정정 | |
US10678636B2 (en) | Techniques for detecting and correcting errors in data | |
JP5306465B2 (ja) | セキュアなメモリに応用するメッセージ認証コードの事前計算 | |
US9544138B2 (en) | Authenticator, authenticatee and authentication method | |
Gao et al. | Building secure SRAM PUF key generators on resource constrained devices | |
US9298947B2 (en) | Method for protecting the integrity of a fixed-length data structure | |
US9160534B2 (en) | Authenticator, authenticatee and authentication method | |
US9191210B2 (en) | Authenticator, authenticatee and authentication method | |
Islam et al. | Signature correction attack on dilithium signature scheme | |
US11934539B2 (en) | Method and apparatus for storing and processing application program information | |
CN115292084A (zh) | 一种数据生成方法、装置、电子设备及存储介质 | |
CN117395030A (zh) | 数据加密方法、数据解密方法、电子设备及存储介质 | |
CN114817931A (zh) | 基于星型信任链的终端安全防护方法、装置、设备及介质 | |
US20210152326A1 (en) | White-box encryption method for prevention of fault injection attack and apparatus therefor | |
CN111143904B (zh) | 一种数据解密方法、装置和计算机可读存储介质 | |
JP2016157055A (ja) | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 | |
CN111859424A (zh) | 物理管理平台的数据加密方法、系统、终端及存储介质 | |
CN117093964A (zh) | 一种源代码的加密方法、装置、存储介质及电子设备 | |
US11829231B2 (en) | Methods and systems for generating core dump in a user equipment | |
JP6007918B2 (ja) | デバイス固有情報生成出力装置、デバイス固有情報生成方法および生成プログラム | |
US20140137211A1 (en) | Apparatus-specific information generation device, apparatus-specific information generation method, terminal apparatus, and authentication system | |
US12013751B2 (en) | Generating a target data based on a function associated with a physical variation of a device | |
US9805205B2 (en) | Adaptive system profile | |
CN116368773A (zh) | 通过使用水印确保被存储在存储器中的数据的完整性 |
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 |