本发明涉及一种纠错码技术,具体涉及一种ldpc码在puf基于码偏移(code-offset)架构纠错中的应用方法及装置,属于硬件安全技术领域。
背景技术:
puf(物理不可克隆技术)是一种利用产品生产过程中存在的内在的随机性,来生成密钥的数字电路。它可以多次重新生成密钥。但是,puf的输出会因为环境因素(例如温度,供电电压等)的不同而改变。因此,在实际使用puf时,必须利用纠错技术纠正在重新生成密钥时的错误。
目前用于puf纠错的技术中,最经常使用的是bch码,bch也是一种线性分组码,在环境噪声比较小时,bch纠错性能较好,但是当环境噪声比较大,也就是puf实际应用中外界环境变化较大时,bch无法纠错性能较差,puf无法用于生成密钥或一些认证场景。
技术实现要素:
发明目的:针对现有技术的不足,本发明目的在于提供一种ldpc码在puf基于码偏移架构纠错中的应用方法及装置,利用码偏移架构,将ldpc码利用到puf技术上,实现在较差外界环境下对puf的纠错。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
ldpc码在puf基于码偏移架构纠错中的应用方法,包括注册过程和验证过程,其中注册过程包括:激励经过puf后生成响应y,经过哈希函数生成注册密钥,同时利用响应y生成协助数据
验证过程包括:激励经过puf后生成响应y’,从y’中减掉存储的协助数据e,再对
作为优选,注册过程中生成协助数据的方法为:将一个随机的码字经过ldpc编码器,生成一个随机的码元c,c与puf的响应y做按位异或运算得到协助数据e。
作为优选,验证过程中进行纠错的方法为:将y’与协助数据e进行按位异或运算,将运算结果放入ldpc译码器,生成估计值
作为优选,验证过程中选择最小和算法进行ldpc译码。
ldpc码在puf基于码偏移架构纠错中的应用装置,包括:
puf单元,用于根据激励生成响应;
协助数据生成单元,用于生成协助数据
协助数据存储单元,用于存储协助数据e;
密钥再生成单元,用于将验证过程中puf单元生成的响应y’与存储的协助数据e按位异或,再对结果
以及,哈希散列单元,用于对puf单元生成的响应或纠错后的响应结果进行散列运算,生成最终密钥。
作为优选,所述协助数据生成单元包括:
ldpc编码器,用于生成ldpc码码元c;
以及,模2加法器,用于将c与puf单元的响应y做按位异或运算。
作为优选,所述密钥再生成单元包括:
第一模2加法器,用于将y’与协助数据e进行按位异或运算;
ldpc译码器,用于对第一模2加法器运算的结果进行ldpc译码;
以及,第二模2加法器,用于将ldpc译码器的运算结果与协助数据e进行按位异或运算,输出纠错后的结果
有益效果:本发明利用码偏移架构,将ldpc码利用到puf上,可以有效改善puf在复杂环境下的错误率。ldpc码是一种线性分组码,可以并行译码,符合puf低功耗,较低复杂度的要求。实验证明在较差外界环境下,ldpc对于puf的纠错能力比现有的bch码等更强。
附图说明
图1为puf纠错的过程示意图。
图2为生成协助数据的过程示意图。
图3为密钥再生成的过程示意图。
图4为本发明与bch码对于puf纠错的性能比较结果图(码长:128、码率:1/8)。
图5为本发明与bch码对于puf纠错的性能比较结果图(码长:128、码率:1/4)。
图6为本发明与bch码对于puf纠错的性能比较结果图(码长:256、码率:1/8)。
图7为本发明与bch码对于puf纠错的性能比较结果图(码长:256、码率:1/4)。
具体实施方式
如图1所示,本发明实施例公开的一种ldpc码在puf基于码偏移架构纠错中的应用方法,包括注册和验证两个过程。
首先,激励(challenge)通过puf生成相应的响应(response),这成为注册(enrollment)过程。
当将puf用于验证时,需要输入challenge来检测生成的response是否与注册的结果相同,实现对设备的认证。但是因为puf的输出还会被环境因素干扰,因此纠错的过程必不可少。
在我们使用的结构中,在注册过程中,激励经过puf后生成响应y,从使用的ldpc码中随机选取一个码元c,生成协助数据
图2具体展示了在ii生成协助数据过程中是如何使用ldpc编码器的。一个随机的码字经过ldpc编码器,生成一个随机的码元c,c与puf的响应y做模二的加法就生成了协助数据e。
图3具体展示了iv密钥再生成过程中是如何使用ldpc译码器的。当相同的激励通过puf后,因为环境因素的影响,会产生与注册时的y有少量差异的y’=y+e’,e’是由于环境因素造成的差异。将y’与存储在iii中的e进行模二加法
关于ldpc码,这是一种线性分组码,有很多的译码算法,在本发明中,为了较好的纠错性能,我们选择标准的最小和算法来进行译码。
对于一个规则的(n,k)ldpc码,有n个变量节点和k个校验节点,并且校验矩阵h是一个(n-k)*n大小的矩阵。在译码过程中,译码信息会在校验节点和变量节点之间互相传递。
表1变量说明
那么,纠错算法就可以这样表述:
对于所有满足hij=1的i和j,
1)初始化:
l(qij)=l(ci)=yi.//l表示运算中使用的是对数似然比(llr)
2)迭代译码:
当1≤it≤itermax时,
当1≤i≤m时,
对于任意的j,
当1≤j≤n时,
对于任意的i,
3)判断结果:
如果l(qi)>0,那么结果输出为0,否则结果输出为1。
本发明实施例公开的一种ldpc码在puf基于码偏移架构纠错中的应用装置,包括:puf单元,用于根据激励生成响应;协助数据生成单元,用于生成协助数据
其中,协助数据生成单元包括:ldpc编码器,用于生成ldpc码码元c;模2加法器,用于将c与puf单元的响应y做按位异或运算。密钥再生成单元包括:第一模2加法器,用于将y’与协助数据e进行按位异或运算;ldpc译码器,用于对第一模2加法器运算的结果进行ldpc译码;第二模2加法器,用于将ldpc译码器的运算结果与协助数据e进行按位异或运算,输出纠错后的结果
为了验证本发明方法的效果和优势,我们可以将puf的纠错过程考虑为一个对于bsc信道的纠错,从图4-7我们可以看到,当bsc信道的条件差错概率变大,也就是bsc信道状况变差,即环境变化剧烈时,ldpc码在不同码率和码长都表现出了比bch码更好的纠错性能。
应用示例1:puf可以用于密钥生成场景,这时候我们的发明就可以被使用。如在银行银行的密码锁中,我们使用puf。生产厂家在生产时对puf进行测试,计算出一系列的激励-响应对,告诉买家,作为密码。当有人想进入时,他所应该有的密码是激励响应对,当他输入激励相应对时,密码锁将两部分分离,将激励部分输入到puf中,产生响应,将这时的响应与输入部分的响应对比,当完全吻合时认为密码正确,开门成功。而puf响应的再生成过程就可以用到我们的发明。
应用示例2:puf可以用于设备认证场景。我们考虑一个物联网场景,电动汽车去充电桩充电,充电桩该如何识别电动汽车是“善意的”,不会对自己造成损坏呢。在电动汽车上装上puf芯片,充电桩向puf发送激励,检测返回的响应是否与应该的响应相同,就可以实现对汽车的认证。在发送激励得到激励的过程中,电动汽车的puf就可以用到我们的发明进行纠错。