1.一种基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述方法至少包括初始注册阶段与重建阶段,其中:初始注册阶段:步骤101,SRAM上电,配置和初始化PUF变量,其中所述变量至少包括:配置数据块上限I、有效数据块数量N、数据块比特数量K和门限T;初始化数据块编号i为0、所有I比特辅助数据HelpDataIndex为0、有效数据块临时序号n为0;步骤102,计算一个SRAM数据块与其不同点数循环移位的异或,并搜索得到与该数据块最大负相关时的循环移位点数及负相关比特数量;步骤103,选择出N个最大负相关比特数量大于设定门限的数据块,将所述数据块作为有效数据块,所述有效数据块的数量为N;步骤104,用N比特掩藏随机数分别控制N个有效数据块是否按其最大负相关时的循环移位点数循环移位;步骤105,由随机数生成器生成一个PUF输出随机数,对其作线性编码,并输出编码结果;步骤106,所述编码结果与掩藏随机数异或后得到辅助数据;重建阶段:步骤201,SRAM上电,初始化变量,并读取所述辅助数据,根据所述辅助数据选择得到有效数据块;步骤202,利用有效数据块和辅助数据,还原掩藏随机数的近似随机数;步骤203,将近似随机数与辅助数据异或,得到纠错前的码字;步骤204,对码字进行线性编码纠错,还原PUF输出随机数。
2.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤102包括:依次累加地址读取K比特SRAM数据,第i个数据块第j比特用D-SRAM[i][j]表示,其中,i∈[0,I-1],j∈[0,K-1];对K比特数据的第i个数据块D-SRAM[i],在k∈[1,K-1]范围内,计算R[k]=numone(D-SRAM[i] (D-SRAM[i] >> k));其中:“>>”表示循环右移,“ ”表示按比特计算异或,“numone”表示统计为1的比特数量;计算MaxR[n]=max(R[1:K-1]),MaxIndex[n]=maxindex(R[1:K-1]);其中“max”表示选择R[1]~R[K-1]中的最大值,“maxindex”表示最大值所在位置,若有多个位置出现相同最大值,则选择R[1]~R[K-1]中下标最小的值。
3.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤103包括:若步骤102中的MaxR[n]≥T,则HelpDataIndex[i]=1,并设置第n个K比特有效数据块HelpData0[n]=D-SRAM[i],n累加1;若n≥N-1,则到步骤104,否则,i累加1,若i≥I,返回注册失败,否则到步骤102。
4.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤104包括:生成一个N比特掩藏随机数R0,各比特用R0[i],i∈[0,N-1]表示;若R0[i]=1,i∈[0,N-1],则循环右移HelpData0[i],即: HelpData0[i]= HelpData0[i] >> MaxIndex[i],并存储辅助数据HelpData0,共N×K比特,HelpDataIndex,共I比特。
5.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤105、106包括:步骤105,由随机数生成器生成一个M比特的PUF输出随机数R1,经线性编码 得到N比特的码字W;步骤106,W与R0异或后存储为辅助数据HelpData1,共N比特,同时把配置数据块上限I、有效数据块数量N、数据块比特数量K和门限T存储为辅助数据。
6.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤201包括:步骤201,SRAM上电,初始化PUF变量,读取辅助数据,按连续地址读取I个数据块的SRAM数据,根据HelpDataIndex选择得到N个K比特的有效数据块,用R-SRAM[i],i∈[0,N-1]表示。
7.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤202包括:提取辅助数据HelpData0的第i段K比特数据HelpData0[i],按步骤102,计算HelpData0[i]对应的MaxR[i],MaxIndex[i],并进一步计算:G0[i]= numone(R-SRAM[i] HelpData0[i]);G1[i]= numone((R-SRAM[i] >> MaxIndex[i]) HelpData0[i]);根据下列判决表达式,逐比特还原掩藏随机数R0[i]的近似随机数R0’[i],i∈[0,N-1]: 。
8.根据权利要求1所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述步骤203、204包括:步骤203,HelpData1与R0’异或,得到W’;步骤204,按线性编码 ,对W’纠错得到W,还原M 比特的PUF输出随机数R1。
9.根据权利要求8所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述方法还包括应用过程辅助数据更新:步骤301,通过随机数决定是否更新,以控制更新频度;步骤302,通过异或计算,定位纠错前码字W’中存在误码的比特;步骤303,按步骤102和步骤104更新W’中误码比特对应的辅助数据,更新前再次通过随机数决定是否更新,以控制更新频度。
10.根据权利要求9所述的基于相关判决的SRAM PUF密钥提取方法,其特征在于,所述应用过程辅助数据更新具体包括:步骤301,生成一个临时随机数,并把它转化为一个[0,1)之间的概率值AdjIndex0,与初始注册阶段设定更新概率门限AdjP0比较,如果AdjIndex0≥AdjP0,退出,否则执行步骤302;步骤302,重建阶段步骤204后,判别M 比特PUF输出随机数R1是否准确,若有误,则退出,若无误,则W和W’异或,得到ER0’;步骤303,循环执行直至遍历i∈[0,N-1],如果ER0’[i]=0,则表示R0’[i]数据无错误,执行下一个循环,否则生成一个临时随机数,把它转化为一个[0,1)之间的概率值AdjIndex1,与初始注册阶段设定更新概率门限AdjP1比较,如果AdjIndex1≥AdjP1,执行下一个循环,否则按步骤102、步骤104,对R-SRAM[i]数据块进行处理,若对应的MaxR[i]≥T,则更新HelpData0[i]数据。