[发明专利]一种具有多个硬件IP核的芯片密钥管理方法有效
申请号: | 201911218132.0 | 申请日: | 2019-12-03 |
公开(公告)号: | CN111125789B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 张跃军;王佳伟;吴秋丰 | 申请(专利权)人: | 宁波大学 |
主分类号: | G06F21/72 | 分类号: | G06F21/72;G06F21/73 |
代理公司: | 宁波奥圣专利代理有限公司 33226 | 代理人: | 方小惠 |
地址: | 315211 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 具有 硬件 ip 芯片 密钥 管理 方法 | ||
1.一种具有多个硬件IP核的芯片密钥管理方法,包括加密过程和解密过程,其特征在于在于所述的加密过程中对每个硬件IP核分别加密,所述的解密过程中对每个硬件IP核分别解密;
所述的加密过程具体包括以下步骤:
①获取芯片内部硬件IP核的总数量,将其记为N,N为小于等于50的整数,根据硬件IP核设计者设定的各硬件IP核的权重,按照权重从大到小的顺序将这N个硬件IP核进行排序,第1个硬件IP核为权重最大的硬件IP核,第2个硬件IP核为权重第二大的硬件IP核,以此类推,第N个硬件IP核为权重最小的硬件IP核,将第i个硬件IP核的序号记为IPi,i=1,2,…,N;
②在每个硬件IP核中分别预设一个特征矢量,每个特征矢量分别包括N-1个8位二进制数,将第i个硬件IP核中预设的特征矢量记为KIPi,KIPi=[ai1 ai2…ai(N-2) ai(N-1)],其中aij为第i个硬件IP核中预设的特征矢量KIPi中第j个8位二进制数,j=1,2,…,N-1;
③在芯片中内嵌多端口物理不可克隆函数,多端口物理不可克隆函数用于提供2N个8位二进制数,使用多端口物理不可克隆函数提供2N个8位二进制数,将多端口物理不可克隆函数提供的2N个8位二进制数随机均分为N组8位二进制数,每组8位二进制数分别包括两个8位二进制数,将第i组8位二进制数中的两个8位二进制数分别记为ei1和ei2;
对第1个~第N个硬件IP核中预设的特征矢量分别进行更新,具体方式为:将第i组8位二进制数中的两个8位二进制数添加到第i个硬件IP核的特征矢量KIPi中,对KIPi进行更新,更新后的KIPi采用式(1)表示为:
KIPi=[ai1 ai2…ai(N-2) ai(N-1) ei1 ei2] (1)
④采用第1个~第N个硬件IP核的当前特征矢量构建一个正交混淆矩阵,将该正交混淆矩阵记为O,正交混淆矩阵O采用式(2)表示为:
⑤设定KIPi的简化特征矢量变量,将其记为K'IPi,设定定点数,将该定点数记为p,对K'IPi以及正交混淆矩阵O分别依次进行首次更新,首次更新过程包括N-1轮次,具体如下:
S1、设定首次更新轮次变量,将其记为T;
S2、设定更新次数变量,将其记为t;
S3、对T进行初始化赋值,令T=1;
S4、对t进行初始化,令t=T;
S5、进入第T轮次第t次更新:采用公式p=a(t+1)1÷a11对定点数p进行第t次更新,得到的p保留两位小数,然后采用公式K'IP(t+1)=KIP(t+1)-KIP1×p对K'IP(t+1)进行第t次更新,采用K'IP(t+1)更新后的值对KIP(t+1)的值进行更新,然后再对正交混淆矩阵O进行更新,使正交混淆矩阵O内KIP(t+1)为最新值,本次更新过程中,每次计算时p、KIP(t+1)、KIP1、a(t+1)1和a11的取值均为其当前最新值;
S6、判定t的当前值是否等于N-1,如果不等于,则采用t的当前值加1的和更新t的值,返回步骤S5进行下一次更新,如果等于,则判断T的当前值是否等于N-1,如果不等于,则采用T的当前值加1的和更新T的值,返回步骤S4,进行下一轮更新,如果等于,则首次更新结束,进入步骤⑥。
⑥对K'IPi以及正交混淆矩阵O分别依次进行再次更新,再次更新过程包括N-1轮次,具体如下:
A、设定再次更新轮次变量,将其记为G,设定中间参数H;
B、设定更新次数变量,将其记为g;
C、对H进行初始化赋值,令H=N-1;
D、对G进行赋值,令G=N-H;
E、对g行初始化,令g=G;
F、进入第G轮次第g次更新:
采用公式p=aHN÷aNN对定点数p进行更新,p保留两位小数,然后采用公式K'IPH=KIPH-KIPN×p对K'IPH进行更新,采用K'IPH更新后的值对KIPH进行更新,然后再对正交混淆矩阵O进行更新,使其KIPH为最新值,本次更新过程中,每次计算时公式中的p、KIPH、KIPN、aHN和aNN均为其当前最新值;
G、判断g的当前值是否等于N-1,如果不等于,则采用g的当前值加1的和更新g的值,返回步骤F进行下一次更新,如果等于,则判断G的当前值是否等于N-1,如果不等于,则采用H的当前值减1的差更新H的值,返回步骤D,进行下一轮更新,如果等于,则再次更新结束,进入步骤⑦;
⑦经过步骤⑤和步骤⑥中首次N-1轮更新和再次N-1轮更新后,此时得到的正交混淆矩阵O采用式(3)表示为:
⑧加密过程结束;
所述的解密过程具体包括以下步骤:
①在芯片用户需要解密已获得芯片厂家授权的芯片内部某个或者某几个硬件IP核时,芯片用户向芯片内输入芯片厂家提供的该芯片的128位二进制密钥,128位二进制密钥的第1位至第16位为芯片厂家配置位,其中第1位至第4位全是0,第5位至第10位构成的6位二进制数据为芯片厂家已授权的硬件IP核的数量,第11位至第16位作为字长位,第11位至第16位构成的6位二进制数据为字长位数据,将字长位数据记为W,W的值满足条件:(N+1)*W≤112,128位二进制密钥的第17位至第128位为芯片厂家秘钥设定位,从128位二进制密钥的第17位开始按照每W位二进制数据选择一次的规则进行二进制数据选取,直到选取到N+1个W位二进制数,将第f次选取的W位二进制数据记为kf,f=1,2,…,N+1,采用选取到N+1个W位二进制数构建一个矩阵,将该矩阵即为Kuser,Kuser采用式(4)表示为:
Kuser=[k1,k2,…,kN,kN+1]T (4)
其中,式(4)中上标T表示矩阵的转置;
②计算O与Kuser的乘积,将计算得到的矩阵记为P,矩阵P采用式(5)表示为:
式(5)中,ps表示矩阵P中第s行的元素,s=1,2,…,N;
③判定ps是否等于0,如果等于0,则第s个硬件IP核的解锁秘钥正确,第s个硬件IP核为芯片厂家已授权的硬件IP核,将第s个硬件IP核解锁,如果不等于0,则第s个硬件IP核的解锁秘钥不正确,第s个硬件IP核未被芯片厂家授权,不解锁第s个硬件IP核。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宁波大学,未经宁波大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911218132.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种保证充气膜防火门与膜接触紧密性的设备
- 下一篇:数据库的防穿库方法及装置