CN108279864A - 系统随机数生成方法 - Google Patents

系统随机数生成方法 Download PDF

Info

Publication number
CN108279864A
CN108279864A CN201810093923.4A CN201810093923A CN108279864A CN 108279864 A CN108279864 A CN 108279864A CN 201810093923 A CN201810093923 A CN 201810093923A CN 108279864 A CN108279864 A CN 108279864A
Authority
CN
China
Prior art keywords
identifier
field
chip
data
random number
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
Application number
CN201810093923.4A
Other languages
English (en)
Inventor
李林
李铭
温建新
张远
陈西昌
张正威
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.)
Shanghai IC R&D Center Co Ltd
Chengdu Image Design Technology Co Ltd
Original Assignee
Shanghai Integrated Circuit Research and Development Center Co Ltd
Chengdu Image Design Technology Co Ltd
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 Shanghai Integrated Circuit Research and Development Center Co Ltd, Chengdu Image Design Technology Co Ltd filed Critical Shanghai Integrated Circuit Research and Development Center Co Ltd
Priority to CN201810093923.4A priority Critical patent/CN108279864A/zh
Publication of CN108279864A publication Critical patent/CN108279864A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种系统随机数生成方法,包括:获取一次性编程(One Time Programmable)OTP寄存器中的设定地址内的数据作为初始种子数,所述初始种子数至少根据第一标识符和第二标识符生成,所述第一标识符通过读取芯片的特定掩模层图形的逻辑值获得,所述第二标识符为设定的生成多项式;获取所述生成多项式;根据所述初始种子数和所述生成多项式生成系统随机数。本发明提供的系统随机数生成方法通过掩模层图形标识芯片的第一标识符,使OTP寄存器中的设定地址内的数据至少根据第一标识符和第二标识符生成,通过利用获取的数据及第二标识符的多次运算生成系统随机数,使得用户可以得到唯一和不可复制的系统随机数。

Description

系统随机数生成方法
技术领域
本发明涉及半导体技术领域,尤其涉及一种系统随机数生成方法。
背景技术
随机数是系统进行加密(例如系统利用随机数生成密钥)的重要工具,因此随机数生成器是所有加密系统所必备的一个环节。一个随机数生成器必须具有足够安全的能力去防止来自外部或内部的攻击。下面列出了最基本的三条安全原则。
1)频率和游程随机性,生成器的输出要具有随机性,满足频率测试和游程测试,针对长游程和刺探攻击保证安全;
2)重构恢复/前向安全性,即使知道生成器在某一特定时刻的状态,也不能由此推断出生成器在此刻以前的输出数;
3)入侵预测/后向安全性,即使知道生成器在某一特定时刻的状态,也不能由此推断出生成器在此刻以后的输出数。
目前主要有通过真实的硬件随机数生成器生成随机数,和通过软件实现的伪随机数生成器生成随机数两种方式。
真实的硬件随机数生成器和软件实现的伪随机数生成器是完全不同的。前者纯粹使用硬件实现,对于相同的输入,每次的结果都完全不可预测;后者易于用软件实现,可以得到统计上的随机数,但是算法实现公开后,同样的输入会得到同样的输出,难以做到算法随机数序列不可重复,不能保证随机数序列的唯一性。
芯片标识符Chip ID,又称设备唯一识别码Device Unique Keys,是芯片安全性的核心技术,不可解密或复用。
芯片标识符的设计目的在于建立可靠的设备与服务关系,具体表现为:仅经过认证的或已知来源的固件方可执行;设备与服务相互进行身份认证;系统间通信交互是经授权认证的,特定情况下可以是保密的。因此安全性方面不可被攻击,作为内嵌固有标示,不能是后期附着生成;同时具有鲁棒性,可从攻击技术造成的错误、故障中迅速恢复。
芯片标识符Chip ID具有唯一性和不可更改的要求,所以目前通常都使用OTP寄存器来实现。不可复制重现的ChipID可以满足随机数硬件生成器的初始种子数需求。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种系统随机数生成方法,通过掩模层图形标识芯片的第一标识符,使OTP寄存器中的设定地址内的数据至少根据第一标识符和第二标识符生成,通过利用获取的数据及第二标识符的多次运算生成系统随机数,使得用户可以得到唯一和不可复制的系统随机数。基于SM3算法生成随机数,符合国家安全标准。
根据本发明的一个方面,提供一种系统随机数生成方法,包括:获取OTP寄存器中的设定地址内的数据作为初始种子数,所述初始种子数至少根据第一标识符和第二标识符生成,所述第一标识符通过读取芯片的特定掩模层图形的逻辑值获得,所述第二标识符为设定的生成多项式;获取所述生成多项式;根据所述初始种子数和所述生成多项式生成系统随机数。
可选地,所述获取OTP寄存器中的设定地址内的数据作为初始种子数的步骤之前包括:获取芯片标识符,所述芯片标识符至少包括按预定顺序排列的所述第一标识符和所述第二标识符;将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符;将经所述SM3加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内,所述设定地址至少包括对应第一标识符的第一地址段和对应第二表示符的第二地址段,所述第一地址段和所述第二地址段的排序顺序与所述第一标识符和第二标识符的排序顺序相同。
可选地,所述将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符的步骤还包括:将所述芯片标识符扩展为待运算字段组,所述待运算字段组的比特位数总和为512的整数倍;对所述待运算字段组按SM3进行加密运算,得到经所述SM3加密后的芯片标识符。
可选地,所述待运算字段组包括:第一字段,所述第一字段为所述待写入到OTP寄存器中的芯片标识符;第二字段,紧接于所述第一字段,所述第二字段的比特长度为1,且该比特位内填充1作为停止位;第三字段,紧接于所述第二字段,所述第三字段为填充字段,所述填充字段中的各比特位为0;第四字段,紧接于所述第三字段,第四字段用于指示所述第一字段占用的比特位数。
可选地,所述第一字段至所述第三字段的比特位数总和与448模512同余,所述第四字段的比特位数总和为64位。
可选地,所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤还包括:若经所述SM3加密后得到的数据的比特长度大于等于所述第一标识符的比特长度,则在经所述SM3加密后得到的数据中,取低N个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述N为所述第一标识符的比特长度;在所述第一数据中,取低N1个比特位作为对应第二标识符的第二数据写入到所述OTP寄存器中的第二地址段中,其中,所述N1为所述第二标识符的比特长度。
可选地,所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤还包括:若经所述SM3加密后得到的数据的比特长度小于所述第一标识符的比特长度,则将SM3的加密运算过程中生成的一个或多个中间数据与经所述SM3加密后得到的数据拼接直至拼接后的数据的比特长度大于等于所述第一标识符的比特长度;在经拼接后的数据中,取低N个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述N为所述第一标识符的比特长度;在所述第一数据中,取低N1个比特位作为对应第二标识符的第二数据写入到所述OTP寄存器中的第二地址段中,其中,所述N1为所述第二标识符的比特长度。
可选地,所述第一标识符为厂商设定的标识符,所述第二标识符为用户设定的标识符。
可选地,所述将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符的步骤之后,所述将经所述SM3加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内的步骤之前,还包括:检测所述OTP寄存器中的设定地址是否已被编程写入过;若检测到所述设定地址尚未被编程写入过,则继续执行所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤;若检测到所述设定地址已被编程写入过,则不执行所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤,并报错。
可选地,所述OTP寄存器为以下任意一种类型的OTP寄存器:烧断型、熔断型、电子熔丝型、反熔丝型OTP寄存器。
可选地,所述电子熔丝型OTP寄存器包含耦合电容型、串联晶体管型和电介质击穿型的电子熔丝型寄存器。
与现有技术相比,本发明中以获取保存在一次性编程OTP寄存器中设定地址内的芯片标识符作为“初始种子数”,以用户写入到OTP寄存器中的用户标识作为“生成多项式”,并根据获取的初始种子数和生成多项式生成系统随机数。由于SM3是把不定长度的一串消息,加以特定的算法处理,得到固定长度的数据,这个数据在理论上破解很困难,工程实现也是不可能的,所以本发明中的芯片标识符也是唯一的,不可复制的。所以,以芯片标识符作为“初始种子数”生成的系统随机数也具有唯一性和不可复制的特性,使得用户可以得到唯一和不可复制的系统随机数。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的系统随机数生成方法的流程图。
图2示出了根据本发明实施例的在OTP寄存器内写入数据的方法的流程图。
图3示出了本发明一具体实施例的在OTP寄存器内写入数据的方法的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本发明的读写芯片标识符的加密算法是基于SM3来实现。具体而言,SM3密码杂凑算法是国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。SM3采用与MD5和SHA-2类似的Merkle-Damgard结构,用512的整数倍位比特输入信息块生成256位比特杂凑值。
下面将说明SM3加密算法的原理:
假设字段m长度为p比特位,那么对该字段进行SM3杂凑算法需执行如下步骤。
1)填充:首先将1添加到m末尾,再加k个0,k是满足p+1+k=448mod512的最小非负整数。然后再添加一个64位比特串,该串是p的二进制表示,填充后的消息m'长度为512的整数倍。
2)迭代:m'按照512比特进行分组:m'=B(0)B(1)...B(n-1),n=(l+k+65)/512。
迭代过程如下:
FOR i=0to n-1
V(i+1)=CF(V(i),B(i))
ENDFOR
其中CF为压缩函数,V(0)为初始值IV,迭代压缩的结果为V(n)
消息分组B(i)扩展生成132个字W0,W1,...W67,W0',W1'...W63'。
FOR j=16to 67
Wj=P1(Wj-16^Wj-9^(Wj-3<<<15)^(Wj-13<<<7)^Wj-6
ENDFOR
FOR j=0to 63
Wj'=Wj^Wj+4
ENDFOR
A/B/C/D/E/F/G/H为字寄存器,SS1/SS2/TT1/TT2为中间变量,压缩函数V(i+1)=CF(V(i),B(i))计算过程如下:
ABCDEFGH=V(i)
FOR j=0to 63
SS1=((A<<<12)+E+(Tj<<<j))<<<7
SS2=SS1^(A<<<12)
TT1=FFj(A,B,C)+D+SS2+Wj'
TT2=GGj(E,F,G)+H+SS1+Wj
D=C
C=B<<<9
B=A
A=TT1
H=G
G=F<<<19
F=E
E=P0(TT2)
ENDFOR
V(i+1)=ABCDEFGH^V(i)
运算过程中,比特位bit/字节Byte/字段Word按照大端Big-Endian格式存储。
3)结果:根据公式,求出杂凑结果256位比特值V(n)
本发明的目的在于提供一种基于SM3的加密读写芯片标识符的方法,使得用户和厂商使用OTP寄存器可以得到唯一的芯片标识符Chip ID,而且难以被逆向破解和非法复制。
本发明通过开发一种电路层设计方法,确保可以把实现唯一安全芯片的可配置连接放置在特定的通孔层中。该通孔层图形的逻辑值可以对应初始化向量Initial Vector作为第一标识符,该孔层图形可以理解为“二维码”,可以是通过电子束直写技术在特定的一层掩模实现,每颗芯片都不同。类似于“二维码”,对应该读取通孔层的图形,通孔部分和非通孔部分分别取值为1和0,以此可以获取对应的配置值,并根据配置值(二进制数)获取通孔层的图形的逻辑值作为本发明下述各个实施例的第一标识符。电子束直写(DirectElectron Writing)作为芯片标识符的创建和存储相当简易,其便于大批量生产,且其鉴定标示过程安全。电子束直写(Direct Electron Writing,DEWs)技术可以满足这样的要求。使得芯片标识符具有唯一性和不可更改。
本发明的目的在于提供一种系统随机数生成方法,使得用户可以得到唯一和不可复制的系统随机数。如图1所示,图1共示出了3个步骤:
步骤S110:获取OTP寄存器中的设定地址内的数据作为初始种子数,所述初始种子数至少根据第一标识符和第二标识符生成,所述第一标识符通过读取芯片的特定掩模层图形的逻辑值获得,所述第二标识符为设定的生成多项式;该第一标识符例如可以是厂商设定的标识符,该生成多项式可以为用户写入到OTP寄存器中的用户标识。
该初始种子数是保存在一次性编程OTP寄存器中设定地址内的芯片标识符,该芯片标识符具有唯一性和不可复制的特性。OTP寄存器以初始化向量来提供初始种子数。
步骤S120:获取所述生成多项式。
需要说明的是,步骤S110和步骤S120并无明确的先后顺序,既可以先执行步骤S110,也可以先执行步骤S120,二者也可以同时进行。
步骤S130:根据所述初始种子数和设定的生成多项式生成所述系统随机数。
本发明实施方式相对于现有技术而言,以获取保存在一次性编程OTP寄存器中设定地址内的芯片标识符作为“初始种子数”,以用户写入到OTP寄存器中的用户标识作为“生成多项式”,根据所述初始种子数和生成多项式生成系统随机数。由于所述芯片标识符具有唯一性和不可复制的特性,使得用户可以得到唯一和不可复制的系统随机数。
由于每颗芯片的Chip ID都不同,即使软件算法一致,或者泄密公开,随机数序列还是安全的。特别地,本文的方法中Chip ID是无法复制的。虽然每颗芯片的随机数序列独一无二,但是对于这一颗芯片而言,每次的结果又是严格一致的,不会受外界系统环境参数影响。这可以做一些特殊应用。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
下面参见图2,图2给出了将芯片标识符写入OTP寄存器中设定地址内的具体方法,进一步阐述了芯片标识符以及系统随机数的唯一性和不可复制的特性。具体地说,在获取保存在一次性编程OTP寄存器中设定地址内的芯片标识符之前,包含将芯片标识符经SM3运算加密后写入到OTP寄存器中设定地址内的步骤。在本实施方式中,将芯片标识符写入OTP寄存器中设定地址内的具体流程如图2所示。图2共示出了3个步骤:
步骤S210:获取芯片标识符,所述芯片标识符至少包括按预定顺序排列的所述第一标识符和所述第二标识符。
本实施例中,该芯片标识符包含用户设定的标识符(第二标识符)、厂商设定的标识符(第一标识符、其它自定义的标识符或其任意组合的标识符,在本实施方式中使用用户设定的标识符和厂商设定的标识符的组合。使用这种方法,只要保护好用户设定的标识符和厂商设定的标识符,即使是知晓全部设计细节的研发人员,缺了任意一个值,都不能破解上述芯片标识符,也不能把空白芯片,改写为有特定芯片标识符的芯片,比单有一个厂商代码或者用户代码安全系数更高。
步骤S220:将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符。
最重要的是SM3运算的过程是单向不可逆的,使用SM3算法对设定的Chip ID进行运算后加密得到的Chip ID跟待写入到OTP寄存器中的原始的Chip ID是不同的Chip ID,在不知道用户设定的ID原始数据和厂商设定的ID原始数据的情况下,即使是已知的特定OTP寄存器中的ID,也是不能被复制的。
SM3算法理论上破解很困难(即目前的数学分析理论已经证明了当前数学工具不能通过对加密后数据的分析,反推破解出加密前的原始数据),工程实现是不可能的(即无法使用暴力穷举的方式,根据加密后的数据破解出加密前的原始数据)。其特征如下:
1)由数据摘要反推原输入数据,从计算理论上来说很困难;
2)想要找到两组不同的数据对应到相同的数据摘要,从计算理论上来说也是很困难的;
3)任何对输入数据的变动,都有很高的机率导致其产生的数据摘要迥异。
步骤S230:将经所述SM3加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内,所述设定地址至少包括对应第一标识符的第一地址段和对应第二表示符的第二地址段,所述第一地址段和所述第二地址段的排序顺序与所述第一标识符和第二标识符的排序顺序相同。
本发明中,写入到OTP寄存器的芯片标识符是经过SM3运算后得到的加密的芯片标识符,该加密的芯片标识符与上述待写入到OTP寄存器中的芯片标识符不同,因此可以对待写入到OTP寄存器中的芯片标识符进行加密保护,防止被破解。同时,SM3是把不定长度的一串消息,加以特定的算法处理,得到固定长度的数据,这个数据在理论上破解很困难,工程实现也是不可能的,所以本发明中的芯片标识符也是唯一的,不可复制的。
优选地,在进行SM3的运算之前,还包含以下步骤,如图3所示:
将待写入到OTP寄存器中的芯片标识符310作为第一字段321,在所述第一字段321后的第二字段322用于存放1个1作为停止位,在所述第二字段322后的第三字段323为填充字段,所述填充字段中的各比特位为0。所述第一字段321至所述第三字段323的比特位数总和与448模512同余。在所述第三字段323后的第四字段324共64比特位,用于指示所述第一字段321占用的比特位数。所述第一字段321、第二字段322、第三字段323和第四字段324共同组成待运算字段组,待运算字段组的比特位数总和为512的整数倍。对待运算字段组进行所述SM3的运算,并输出256位比特的数据。在SM3运算过程中,由于输入的数据必须是512的整数倍位比特,通过上述SM3运算之前的准备步骤,就能将消息的比特长度总和综合处理成适用于SM3运算的512比特,保证了SM3运算的可操作性和准确性
优选地,本发明中的芯片标识符包含用户设定的标识符和厂商设定的标识符,使用这种方法,只要保护好厂商代码或用户代码,即使是知晓全部设计细节的研发人员,缺了任意一个代码,都不能破解上述芯片标识符,也不能把空白芯片,改写为有特定Chip ID的芯片,比单有一个厂商代码或者用户代码安全系数更高。
另外,本发明可以通过系统接口获取所述用户设定的标识符和厂商设定的标识符。该系统接口用于把用户设定的标识符和厂商设定的标识符合并处理成一定的顺序,便于下一步SM3算法对其进行运算处理。
另外,本发明中,若经所述SM3加密后得到的数据330的比特长度大于等于所述第一标识符的比特长度,则在经SM3运算后得到的加密后的芯片标识符中,取低N个比特位作为第一数据写入到所述OTP寄存器中的对应第一标识符的第一地址段341中,其中,所述N为所述厂商设定的标识符的比特长度;在所述第一数据中,取低N1个比特位作为第二数据写入到所述OTP寄存器中的对应第二标识符的第二地址段342中,其中,所述N1为所述用户设定的标识符的比特长度。
若经所述SM3加密后得到的数据330的比特长度小于所述第一标识符的比特长度,则将SM3的加密运算过程中生成的一个或多个中间数据与经所述SM3加密后得到的数据拼接直至拼接后的数据的比特长度大于等于所述第一标识符的比特长度;在经拼接后的数据中,取低N个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段341中,其中,所述N为所述第一标识符的比特长度;在所述第一数据中,取低N1个比特位作为对应第二标识符的第二数据写入到所述OTP寄存器中的第二地址段342中,其中,所述N1为所述第二标识符的比特长度。具体而言,SM4的加密运算过程中由于经过多轮运算,每轮运算生成一中间数据(例如,第1轮加密中间数据a;第2轮加密中间数据b;第3轮加密中间数据c......倒数第3轮加密中间数据x;倒数第2轮加密中间数据y;最后1轮加密数据结果z,自最后1轮向前拼接合并直至拼接后的数据的比特长度大于等于所述第一标识符的比特长度N)。通过加密算法中多轮的中间数据,以级联的方式,实现中间数据和最终数据的拼接,以处理第一标识符比特长度较长的情况。同时,这样的实施方式拼接无论是最终数据还是中间数据,其值都是唯一且不可逆,因此,通过拼接的方式也可以进一步增加最终获得的第一标识符和第二标识符的唯一性和安全性。
在本实施例中,OTP寄存器中的用于存放用户设定的标识符的字段,为该OTP寄存器中从低到高的第72个比特位至第103个比特位,用于存放厂商设定的标识符的字段,为该OTP寄存器中从低到高的第104个比特位至第247个比特位。
由于使用SM3算法运算后的芯片标识符信息会按照一定的顺序写入到OTP寄存器中,而本发明中OTP寄存器中用户设定的ID的字段和厂商设定的ID的字段是有一一对应的位置存放关系的,这就为SM3算法的准确性提供了保障,使整个运算过程井井有条,不容易发生由于位置关系不正确导致的运算错误。
芯片标识符安全性最大的挑战来自于:小型、低价而且高容量的芯片使得攻击者对物理实例的逆向工程变得可行;常规的物理不可克隆功能Physically UnclonableFunctions(PUFs)器件技术很难在实现简单而价格低廉的芯片上实现设备唯一识别码DUKs相关系统;此外有限的数据处理资源也是一大挑战。
在需要生成随机数时,即可根据保存在OTP寄存器中设定地址内的芯片标识符、设定的生成多项式生成系统随机数。与第一实施方式相同,在此不再赘述。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
与现有技术相比,本发明中以获取保存在一次性编程OTP寄存器中设定地址内的芯片标识符作为“初始种子数”,以用户写入到OTP寄存器中的用户标识作为“生成多项式”,并根据获取的初始种子数和生成多项式生成系统随机数。由于SM3是把不定长度的一串消息,加以特定的算法处理,得到固定长度的数据,这个数据在理论上破解很困难,工程实现也是不可能的,所以本发明中的芯片标识符也是唯一的,不可复制的。所以,以芯片标识符作为“初始种子数”生成的系统随机数也具有唯一性和不可复制的特性,使得用户可以得到唯一和不可复制的系统随机数。同时SM3算法基于国家标准,具有安全性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (11)

1.一种系统随机数生成方法,其特征在于,包括:
获取OTP寄存器中的设定地址内的数据作为初始种子数,所述初始种子数至少根据第一标识符和第二标识符生成,所述第一标识符通过读取芯片的特定掩模层图形的逻辑值获得,所述第二标识符为设定的生成多项式;
获取所述生成多项式;
根据所述初始种子数和所述生成多项式生成系统随机数。
2.根据权利要求1所述的系统随机数生成方法,其特征在于,所述获取OTP寄存器中的设定地址内的数据作为初始种子数的步骤之前包括:
获取芯片标识符,所述芯片标识符至少包括按预定顺序排列的所述第一标识符和所述第二标识符;
将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符;
将经所述SM3加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内,所述设定地址至少包括对应第一标识符的第一地址段和对应第二表示符的第二地址段,所述第一地址段和所述第二地址段的排序顺序与所述第一标识符和第二标识符的排序顺序相同。
3.根据权利要求2所述的系统随机数生成方法,其特征在于,所述将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符的步骤还包括:
将所述芯片标识符扩展为待运算字段组,所述待运算字段组的比特位数总和为512的整数倍;
对所述待运算字段组按SM3进行加密运算,得到经所述SM3加密后的芯片标识符。
4.根据权利要求3所述的系统随机数生成方法,其特征在于,所述待运算字段组包括:
第一字段,所述第一字段为所述待写入到OTP寄存器中的芯片标识符;
第二字段,紧接于所述第一字段,所述第二字段的比特长度为1,且该比特位内填充1作为停止位;
第三字段,紧接于所述第二字段,所述第三字段为填充字段,所述填充字段中的各比特位为0;
第四字段,紧接于所述第三字段,第四字段用于指示所述第一字段占用的比特位数。
5.根据权利要求4所述的系统随机数生成方法,其特征在于,所述第一字段至所述第三字段的比特位数总和与448模512同余,所述第四字段的比特位数总和为64位。
6.根据权利要求2所述的系统随机数生成方法,其特征在于,所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤还包括:
若经所述SM3加密后得到的数据的比特长度大于等于所述第一标识符的比特长度,则在经所述SM3加密后得到的数据中,取低N个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述N为所述第一标识符的比特长度;
在所述第一数据中,取低N1个比特位作为对应第二标识符的第二数据写入到所述OTP寄存器中的第二地址段中,其中,所述N1为所述第二标识符的比特长度。
7.根据权利要求6所述的系统随机数生成方法,其特征在于,所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤还包括:
若经所述SM3加密后得到的数据的比特长度小于所述第一标识符的比特长度,则将SM3的加密运算过程中生成的一个或多个中间数据与经所述SM3加密后得到的数据拼接直至拼接后的数据的比特长度大于等于所述第一标识符的比特长度;
在经拼接后的数据中,取低N个比特位作为对应第一标识符的第一数据写入到所述OTP寄存器中第一地址段中,其中,所述N为所述第一标识符的比特长度;
在所述第一数据中,取低N1个比特位作为对应第二标识符的第二数据写入到所述OTP寄存器中的第二地址段中,其中,所述N1为所述第二标识符的比特长度。
8.根据权利要求1至7任一项所述的系统随机数生成方法,其特征在于,所述第一标识符为厂商设定的标识符,所述第二标识符为用户设定的标识符。
9.根据权利要求1至7任一项所述的系统随机数生成方法,其特征在于,所述将所述芯片标识符按SM3进行加密运算,得到经所述SM3加密后的芯片标识符的步骤之后,所述将经所述SM3加密后的芯片标识符写入到芯片的OTP寄存器中的设定地址内的步骤之前,还包括:
检测所述OTP寄存器中的设定地址是否已被编程写入过;
若检测到所述设定地址尚未被编程写入过,则继续执行所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤;
若检测到所述设定地址已被编程写入过,则不执行所述将经所述SM3加密后的芯片标识符写入到所述OTP寄存器中的设定地址内的步骤,并报错。
10.根据权利要求1至7中任一项所述的系统随机数生成方法,其特征在于,所述OTP寄存器为以下任意一种类型的OTP寄存器:
电子熔丝型、反熔丝型、烧断型、熔断型OTP寄存器。
11.根据权利要求10所述的系统随机数生成方法,其特征在于,所述电子熔丝型OTP寄存器包含串联晶体管型、耦合电容型和电介质击穿型的电子熔丝型寄存器。
CN201810093923.4A 2018-01-31 2018-01-31 系统随机数生成方法 Pending CN108279864A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810093923.4A CN108279864A (zh) 2018-01-31 2018-01-31 系统随机数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810093923.4A CN108279864A (zh) 2018-01-31 2018-01-31 系统随机数生成方法

Publications (1)

Publication Number Publication Date
CN108279864A true CN108279864A (zh) 2018-07-13

Family

ID=62807153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810093923.4A Pending CN108279864A (zh) 2018-01-31 2018-01-31 系统随机数生成方法

Country Status (1)

Country Link
CN (1) CN108279864A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241789A (zh) * 2018-07-19 2019-01-18 上海集成电路研发中心有限公司 一种芯片标识方法
CN111638866A (zh) * 2020-04-26 2020-09-08 北京中交兴路信息科技有限公司 随机数生成方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609237A (zh) * 2011-01-06 2012-07-25 微软公司 可扩展的随机数生成
US20140205093A1 (en) * 2003-06-21 2014-07-24 Seagate Technology Llc Method and system for generating a random number
CN104579630A (zh) * 2013-10-25 2015-04-29 上海华力创通半导体有限公司 系统随机数生成方法
CN104573572A (zh) * 2013-10-25 2015-04-29 上海华力创通半导体有限公司 加密读写芯片标识符的方法
CN104809175A (zh) * 2015-04-13 2015-07-29 上海达梦数据库有限公司 特征库的生成方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140205093A1 (en) * 2003-06-21 2014-07-24 Seagate Technology Llc Method and system for generating a random number
CN102609237A (zh) * 2011-01-06 2012-07-25 微软公司 可扩展的随机数生成
CN104579630A (zh) * 2013-10-25 2015-04-29 上海华力创通半导体有限公司 系统随机数生成方法
CN104573572A (zh) * 2013-10-25 2015-04-29 上海华力创通半导体有限公司 加密读写芯片标识符的方法
CN104809175A (zh) * 2015-04-13 2015-07-29 上海达梦数据库有限公司 特征库的生成方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241789A (zh) * 2018-07-19 2019-01-18 上海集成电路研发中心有限公司 一种芯片标识方法
CN111638866A (zh) * 2020-04-26 2020-09-08 北京中交兴路信息科技有限公司 随机数生成方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US9934400B2 (en) System and methods for encrypting data
Maes et al. Low-overhead implementation of a soft decision helper data algorithm for SRAM PUFs
EP2214117B1 (en) Authentication with physical unclonable functions
JP3675494B2 (ja) 確認装置によって少なくとも1つの識別装置を認証する方法および装置
US20130147511A1 (en) Offline Device Authentication and Anti-Counterfeiting Using Physically Unclonable Functions
CN109993008A (zh) 用于隐式完整性的方法和布置
CN105007157B (zh) 基于设备生成的密钥来生成和管理多个基密钥
EP1977511A2 (en) Signal generator based device security
CN105406957B (zh) 保护密码设备对抗实现攻击
US11368319B2 (en) Integrated circuit performing authentication using challenge-response protocol and method of using the integrated circuit
JPWO2018174112A1 (ja) ネットワーク上の装置認証技術
CN108279864A (zh) 系统随机数生成方法
CN108280373A (zh) 加密读写芯片标识符的方法
Liu et al. A novel security key generation method for SRAM PUF based on Fourier analysis
CN117390637A (zh) 一种安全接入区系统安全防护的方法及系统
CN108388817A (zh) 加密读写芯片标识符的方法
Shah et al. PUF-Based Lightweight Authentication Protocol for IoT Devices
CN115913577A (zh) 一种基于轻量级spongent哈希算法的抗物理克隆设备认证系统及方法
Ueno et al. Rejection sampling schemes for extracting uniform distribution from biased pufs
El-Hajj et al. Secure PUF: Physically unclonable function based on arbiter with enhanced resistance against machine learning (ML) attacks
Cambou Addressabke PUF generators for database-free password management system
Yao et al. Security of weak secrets based cryptographic primitives via the Renyi entropy
CN108388816A (zh) 一种加密读写芯片标识符的方法
Abumuala et al. A new method for generating cryptographically strong sequences of pseudo random bits for stream cipher
CN111884799B (zh) 一种基于RO-PUF的CRPs库构建方法和系统

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180713

RJ01 Rejection of invention patent application after publication