一种基于芯片生成非重复应用数据的方法及装置与流程

文档序号:11177068阅读:272来源:国知局
一种基于芯片生成非重复应用数据的方法及装置与流程
本发明涉及信息安全领域,尤其涉及一种基于芯片生成非重复应用数据的方法及装置。
背景技术
:产品序列号是产品在生产或使用过程中存储在flash(中文名称:非易失存储器)中的应用数据,flash中还存储有其他应用数据(例如保密秘钥),攻击者很容易通过逆向工程来非法获取应用数据。目前使用的防护技术是对应用数据进行加密后存储到flash中,但这种方式使用时,攻击者也可通过复制所有flash上数据而获得完全一样的芯片,此时该芯片输出的应用数据和被攻击芯片完全一样,存在很大的安全隐患。puf(英文全称:physicalunclonablefunctions,中文全称:物理不可克隆函数)是借鉴当前使用的人体唯一特征(指纹或虹膜等)对个人进行认证而提出的一种基于芯片的dna技术。puf为芯片内的一个物理实体,通过对该物理实体输入一个激励,利用其内置算法输出一个不可预知的响应。srampuf(英文名称:staticrandomacessmemorypuf,中文名称:静态随机存储器物理不可克隆函数)是一种改进型的puf,输入为芯片上电;输出为sram(中文名称:静态随机存储器)上的随机数据,具体实现方法包括注册过程和应用过程;注册过程包括:1、读取初始值,根据初始值生成sram种子值,该种子值位具有容错功能的bch码;2、对sram种子值进行bch编码操作生成bch码字;bch码字具有错误容限;3、读取sram初始值,根据sram初始值生成识别码,该sram初始值和bch码字长度相同;4、将识别码经过安全哈希算法sha-256生成256位唯一密钥值;5、将bch码字与识别码做异或处理,生成帮助数据并保存;帮助数据hd用于密钥重构,根据带有噪声的识别码恢复出识别码。应用过程包括:1、读取与识别码相同地址的带有噪声的网络识别码;2、读取保存的帮助数据;3、将带有噪声的网络识别码与帮助数据做异或处理,得到带有错误的bch码;4、将带有错误的bch码经过bch解码操作,若实际错误不大于设计纠错容限,则生成标准bch码,系统认证成功,继续;否则,bch解码失败,结束;5、将标准bch码与帮助数据做异或操作,恢复出系统注册阶段使用的识别码;6、将恢复出来的识别码经过安全哈希算法sha-256生成256位的密钥值,此密钥值与系统注册时产生的唯一密钥值相同。使用上述方法虽然可以防止攻击者复制应用数据,提高应用数据的安全性,但也有其他缺点:1、由于sram有很强的不稳定性,注册阶段sram种子值不经过任何筛选就使用,会造成bch编码中存在大量需要纠错的数据,需要纠错的数据个数严重超过普通使用的纠错码的纠错能力,造成系统无法应用;2、获取的识别码包含大量不稳定数据,该数据在应用过程同样造成大量需要纠错数据,加重纠错码的计算负荷或使纠错码不能正常纠错。技术实现要素:本发明的目的是为了克服现有技术的不足,提供一种基于芯片生成非重复应用数据的方法及装置。本发明提供一种基于芯片生成非重复应用数据的方法,包括注册过程和应用过程,所述注册过程包括:步骤s0:对芯片进行预设次数的下电再上电操作,在每次芯片上电期间从所述芯片上读取固定长度的数据并保存;步骤s1:根据保存的数据生成第一数据列表;步骤s2:依次判断所述第一数据列表的各个数据中相同比特位上的值是否均相同,是则将对应数据位标记为1得到标记数据,执行步骤s3,否则将对应数据位标记为0得到标记数据,执行步骤s3;步骤s3:根据所述标记数据中标记为1的数据位从所述第一数据列表的数据中获取对应比特位上的值得到第一数据,从所述第一数据中提取第一预设长度的数据得到第一标识码;步骤s4:生成第二预设长度的随机数,并对所述随机数进行纠错编码得到纠错码字,根据所述纠错码字和所述第一标识码生成帮助数据,将所述帮助数据与所述标记数据对应保存;所述应用过程包括:步骤p1:获取保存的标记数据,并从所述芯片上读取固定长度的数据;步骤p2:根据所述标记数据中标记为1的数据位从读取的数据中获取对应比特位上的值得到比特串;步骤p3:从所述比特串中提取所述第一预设长度的数据得到第二标识码,读取保存的对应的帮助数据,根据所述第二标识码和所述帮助数据生成运算结果;步骤p4:对所述运算结果进行纠错解码,如解码成功则将所述第二标识码作为解码数据,执行步骤p5;如解码失败且纠错成功则根据解码结果修改所述第二标识码中所有出错比特位上的值得到解码数据,执行步骤p5;如解码失败且纠错失败则报错;步骤p5:根据所述解码数据和预设数据生成扩展序列,从所述扩展序列中获取所需的应用数据。进一步地,所述步骤s2替换为:步骤s2’:对所述第一数据列表中的所有数据进行异或运算得到标记数据。进一步地,所述步骤s0包括:步骤s01:对所述芯片下电之后再上电;步骤s02:从所述芯片的固定位置上读取固定长度的数据并保存;步骤s03:判断读取次数是否到达预设次数,是则执行步骤s1,否则返回步骤s01。进一步地,所述步骤s2包括:步骤s2-1:将所述第一数据列表中各个数据的最高比特位作为当前比特位;步骤s2-2:判断所述第一数据列表中各个数据的当前比特位上的值是否相同,是则将对应数据位标记为1并保存,执行步骤s2-3,否则将对应数据位标记为0并保存,执行步骤s2-3;步骤s2-3:判断是否处理完所述第一数据列表中各个数据的所有比特位上的值,是则执行步骤s2-4,否则将所述第一数据列表中各个数据的下一比特位作为当前比特位,返回步骤s2-2;步骤s2-4:根据保存的数据位生成标记数据。进一步地,所述步骤s3中根据所述标记数据中标记为1的数据位从所述第一数据列表的数据中获取对应比特位上的值得到第一数据与从所述第一数据中提取第一预设长度的数据得到第一标识码之间,包括:判断所述第一数据的长度是否小于第一预设长度,是则报错,否则从所述第一数据中提取第一预设长度的数据得到第一标识码。进一步地,所述根据所述纠错码字和所述第一标识码生成帮助数据,具体为:对所述纠错码字和所述第一标识码进行异或运算得到所述帮助数据;所述根据所述第二标识码和所述帮助数据生成运算结果,具体为:对所述第二标识码和读取的所述帮助数据进行异或运算得到所述运算结果。进一步地,所述根据所述解码数据和预设数据生成扩展序列具体为:使用哈希算法对所述解码数据和预设数据进行哈希计算得到所述扩展序列。进一步地,所述步骤p4中如解码失败且纠错失败则报错,具体包括:判断解码失败次数是否超过预设值,是则报错结束;否则更新解码失败次数,返回步骤p1。本发明又提供一种基于芯片生成非重复应用数据的装置,包括注册模块和应用模块,所述注册模块包括:下电上电子模块,用于对芯片子模块进行下电再上电操作;所述芯片子模块,用于保存固定长度的数据;读取保存子模块,用于在所述芯片子模块上电期间从所述芯片子模块上读取固定长度的数据并保存;第一生成子模块,用于根据所述读取保存子模块保存的数据生成第一数据列表;第一判断子模块,用于依次判断所述第一生成子模块生成的第一数据列表的各个数据中相同比特位上的值是否均相同,是则将对应数据位标记为1得到标记数据,否则将对应数据位标记为0得到标记数据;第一提取子模块,用于根据所述第一判断子模块得到的标记数据中标记为1的数据位从所述第一生成子模块生成的第一数据列表的数据中获取对应比特位上的值得到第一数据,从所述第一数据中提取第一预设长度的数据得到第一标识码;生成编码子模块,用于生成第二预设长度的随机数,并对所述随机数进行纠错编码得到纠错码字;第二生成子模块,用于根据所述生成编码子模块得到的纠错码字和所述第一提取子模块得到的第一标识码生成帮助数据;保存子模块,用于将所述第二生成子模块生成的帮助数据与所述第一判断子模块得到的标记数据对应保存;所述应用模块包括:获取读取子模块,用于获取所述保存子模块保存的标记数据,并从所述芯片子模块上读取固定长度的数据;第一获取子模块,用于根据所述获取读取子模块获取的标记数据中标记为1的数据位从所述获取读取子模块读取的数据中获取对应比特位上的值得到比特串;第二提取子模块,用于从所述第一获取子模块获取的比特串中提取第一预设长度的数据得到第二标识码,读取所述保存子模块保存的帮助数据;第三生成子模块,用于根据所述第二提取子模块得到的第二标识码和读取的帮助数据生成运算结果;解码子模块,用于对所述第三生成子模块生成的运算结果进行纠错解码,如解码成功则将所述第二标识码作为解码数据;如解码失败且纠错成功则根据解码结果修改所述第二标识码中所有出错比特位上的值得到解码数据;报错子模块,用于当所述解码子模块在解码失败且纠错失败时进行报错;第四生成子模块,用于根据所述解码子模块得到的解码数据和预设数据生成扩展序列;第二获取子模块,用于从所述第四生成子模块生成的扩展序列中获取所需的应用数据。进一步地,所述第一判断子模块还用于对所述第一生成模块生成的第一数据列表中的所有数据进行异或运算得到标记数据。进一步地,所述读取保存子模块包括:读取保存单元,用于从所述芯片子模块的固定位置上读取固定长度的数据并保存;第一判断单元,用于判断读取次数是否到达预设次数,是则触发所述第一生成子模块工作,否则触发所述下电上电子模块工作;所述第一生成子模块具体用于根据所述读取保存单元保存的数据生成第一数据列表。进一步地,所述第一判断子模块包括:第一作为单元,用于将所述第一生成子模块生成的第一数据列表中各个数据的最高比特位作为当前比特位;第二判断单元,用于判断所述第一生成子模块生成的第一数据列表中各个数据的当前比特位上的值是否相同,是则将对应数据位标记为1并保存,否则将对应数据位标记为0并保存;第三判断单元,用于判断是否处理完所述第一生成子模块生成的第一数据列表中各个数据的所有比特位上的值;第二作为单元,用于当所述第三判断单元判断为否时将所述第一生成子模块生成的第一数据列表中各个数据的下一比特位作为当前比特位;生成单元,用于当第三判断单元判断为是时根据所述第二判断单元保存的数据位生成标记数据。进一步地,所述第一提取子模块还用于判断所述第一数据的长度是否小于第一预设长度,是则报错,否则从所述第一数据中提取第一预设长度的数据得到第一标识码。进一步地,所述第二生成子模块具体用于对所述生成编码子模块得到的纠错码字和所述第一提取子模块得到的第一标识码进行异或运算得到所述帮助数据;所述第三生成子模块具体用于对所述第二提取子模块得到的第二标识码和读取的所述帮助数据进行异或运算得到所述运算结果。进一步地,所述第四生成子模块具体用于使用哈希算法对所述解码子模块得到的解码数据和预设数据进行哈希计算得到所述扩展序列。进一步地,所述应用模块还包括第二判断子模块和更新子模块;所述第二判断子模块用于当所述解码子模块在解码失败且纠错失败时判断解码失败次数是否超过预设值;所述更新子模块用于当所述第二判断子模块判断为否时更新解码失败次数,触发所述获取读取子模块进行工作;所述报错子模块具体用于当所述第二判断子模块判断为是时进行报错。本发明与现有技术相比,具有以下优点:本发明技术方案通过在注册过程中进行多次下电上电之后读取芯片上固定位置中的数据,获得第一标识码的相对稳定态;并对随机数进行编码,保证每颗芯片具有不一样的纠错码字,防止攻击者通过攻击纠错码字获得相应的信息;应用过程为保证应用数据输出的稳定性,第二标识码使用稳定态时比特串中的预设长度数据,最大限度减少纠错码需要纠错的次数,提高基于芯片生成非重复应用数据的效率,使用本发明技术方案可生成唯一的任意长度的应用数据,提高应用数据的使用安全性。附图说明图1为本发明实施例一提供的一种基于芯片生成非重复应用数据的方法流程图;图2和图3为本发明实施例二提供的一种基于芯片生成非重复应用数据的方法流程图;图4为本发明实施例三提供的一种基于芯片生成非重复应用数据的装置方框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例一提供一种基于芯片生成非重复应用数据的方法,如图1所示,包括注册过程(图1中的虚线上部分)和应用过程(图1中的虚线下部分),注册过程包括:步骤s0:对芯片进行预设次数的下电再上电操作,在每次芯片上电期间从芯片上读取固定长度的数据并保存;具体的,在本实施例中,芯片下电、上电之后其上存储的数据会发生变化;则步骤s0包括:步骤s01:对芯片下电之后再上电;步骤s02:从芯片的固定位置上读取固定长度的数据并保存;步骤s03:判断读取次数是否到达预设次数,是则执行步骤s1,否则返回步骤s01;步骤s1:根据保存的数据生成第一数据列表;步骤s2:依次判断第一数据列表的各个数据中相同比特位上的值是否均相同,是则将对应数据位标记为1得到标记数据,执行步骤s3,否则将对应数据位标记为0得到标记数据,执行步骤s3;具体的,在本实施例中,步骤s2包括:步骤s2-1:将第一数据列表中各个数据的最高比特位作为当前比特位;步骤s2-2:判断第一数据列表中各个数据的当前比特位上的值是否相同,是则将对应数据位标记为1并保存,执行步骤s2-3,否则将对应数据位标记为0并保存,执行步骤s2-3;步骤s2-3:判断是否处理完第一数据列表中各个数据的所有比特位上的值,是则执行步骤s2-4,否则将第一数据列表中各个数据的下一比特位作为当前比特位,返回步骤s2-2;步骤s2-4:根据保存的数据位生成标记数据。可选的,本实施例中的步骤s2可替换为:步骤s2’:对第一数据列表中的所有数据进行异或运算得到标记数据;步骤s3:根据标记数据中标记为1的数据位从第一数据列表的数据中获取对应比特位上的值得到第一数据,从第一数据中提取第一预设长度的数据得到第一标识码;优选的,在本实施例中,步骤s3中得到第一数据与得到第一标识码之间包括:判断第一数据的长度是否小于第一预设长度,是则报错,否则从第一数据中提取第一预设长度的数据得到第一标识码;步骤s4:生成第二预设长度的随机数,并对随机数进行纠错编码得到纠错码字,根据纠错码字和第一标识码生成帮助数据,将帮助数据与标记数据对应保存;在本实施例中,根据纠错码字和第一标识码生成帮助数据,具体为:对纠错码字和第一标识码进行异或运算得到帮助数据;优选的,本实施例中的纠错编码方式可以为bhc编码,也可以用其他纠错编码方式(例如前向纠错编码等)来实现,在此不再赘述;优选的,步骤s4中还可以包括:清除第一标识码;应用过程包括:步骤p1:获取保存的标记数据,并从芯片上读取固定长度的数据;优选的,步骤p1中从芯片的固定位置上读取固定长度的数据;步骤p2:根据标记数据中标记为1的数据位从读取的数据中获取对应比特位上的值得到比特串;步骤p3:从比特串中提取第一预设长度的数据得到第二标识码,读取保存的对应的帮助数据,根据第二标识码和帮助数据生成运算结果;在本实施例中,根据第二标识码和帮助数据生成运算结果,具体为:对第二标识码和读取的帮助数据进行异或运算得到运算结果;步骤p4:对运算结果进行纠错解码,如解码成功则将第二标识码作为解码数据,执行步骤p5;如解码失败且纠错成功则根据解码结果修改第二标识码中所有出错比特位上的值得到解码数据,执行步骤p5;如解码失败且纠错失败则报错;在本实施例中,步骤p4中如解码失败且纠错失败则报错,具体包括:判断解码失败次数是否超过预设值,是则报错;否则更新解码失败次数,返回步骤p1;优选的,本实施例中的纠错解码方式可以为bhc解码,也可以用其他纠错解码方式来实现(例如前向纠错解码等),在此不再赘述;步骤p5:根据解码数据和预设数据生成扩展序列,从扩展序列中获取所需的应用数据;在本实施例中,根据解码数据和预设数据生成扩展序列具体为:使用哈希算法对解码数据和预设数据进行哈希计算得到扩展序列。实施例二本发明实施例二提供一种基于芯片生成非重复应用数据的方法,包括注册过程和应用过程,注册过程如图2所示,包括:步骤a0:对芯片下电之后再上电;具体的,在本实施例中,每次芯片下电再上电之后其上存储的数据会发生变化;步骤a1:从芯片的固定位置上读取固定长度的数据并保存;优选的,本实施例中的固定长度为1024bit;步骤a2:判断读取次数是否到达预设次数,是则根据保存的数据生成第一数据列表,执行步骤a3,否则返回步骤a0;在本实施例中,预设次数可以为大于1的任意数值,优选的,预设次数为50;例如,本实施例中固定位置上的数据长度为1024;则生成的第一数据列表为:读取次数读取的数据(长度为1024bit)111100010......110001210100010......110001............4911101010......1100015011100010......110101步骤a3:依次判断第一数据列表的各个数据中相同比特位上的值是否均相同,是则将对应数据位标记为1得到标记数据,执行步骤a4,否则将对应数据位标记为0得到标记数据,执行步骤a4;例如,根据上述生成的第一数据列表得到的标记数据:10110111......111011;长度为1024bit;具体的,在本实施例中,步骤a3包括:步骤a3-1:将第一数据列表中各个数据的最高比特位作为当前比特位;步骤a3-2:判断第一数据列表中各个数据的当前比特位上的值是否相同,是则将对应数据位标记为1并保存,执行步骤a3-3,否则将对应数据位标记为0并保存,执行步骤a3-3;步骤a3-3:判断是否处理完第一数据列表中各个数据的所有比特位上的值,是则执行步骤a3-4,否则将第一数据列表中各个数据的下一比特位作为当前比特位,返回步骤a3-2;步骤a3-4:根据保存的数据位生成标记数据;步骤a4:根据标记数据中标记为1的数据位从第一数据列表的数据中获取对应比特位上的值得到第一数据;步骤a5:判断第一数据的长度是否小于第一预设长度,是则报错,否则从第一数据中提取第一预设长度的数据得到第一标识码,执行步骤a6;优选的,本实施例中的第一预设长度为256bit,根据第一预设长度从第一数据的高位起截取对应长度数据作为第一标识码;例如,本实施例中组成的第一数据为110010......11001:提取得到的第一标识码为110010......;步骤a6:生成第二预设长度的随机数,并对该随机数进行纠错编码得到纠错码字;优选的,本实施例中的第二预设长度为160bit;对该随机数进行纠错编码得到纠错码字具体为:对该随机数进行bch编码得到纠错码字,该纠错码字长度为256bit;步骤a7:对纠错码字和第一标识码进行异或运算得到帮助数据;步骤a8:清除保存的第一标识码,并将标记数据和帮助数据对应保存;在本实施例中,步骤a8之后注册过程结束;应用过程如图3所示,包括:步骤b1:芯片上电,获取标记数据,并从芯片的固定位置上读取固定长度的数据;步骤b2:根据标记数据中的数据位标记为1的数据位从读取的数据中获取对应比特值得到比特串;步骤b3:从比特串中提取第一预设长度的数据得到第二标识码,读取保存的对应的帮助数据;优选的,本实施例中的第一预设长度为256bit;从比特串中提取第一预设长度的数据得到第二标识码,具体为:根据第一预设长度从比特串的高位起截取相应长度数据作为第二标识码;步骤b4:对第二标识码和读取的帮助数据进行异或运算得到运算结果;步骤b5:对运算结果进行纠错解码,如解码成功则将第二标识码作为解码数据,执行步骤b6;如解码失败且纠错成功则根据解码结果修改第二标识码中所有出错比特位上的值得到解码数据,执行步骤b6;如解码失败且纠错失败则执行步骤b7;比如,运算结果中出错比特位上的值为1;则将该比特位上的值修改为0;优选的,对运算结果进行纠错解码具体为:对运算结果进行bch解码;步骤b6:根据解码数据和预设数据生成扩展序列,从扩展序列中获取所需的应用数据;在本实施例中,根据解码数据和预设数据生成扩展序列具体为:使用哈希算法(例如sm3算法)对解码数据和预设数据进行哈希计算得到扩展序列;例如预设数据为0x00000001或0x00000002或0x00000003等;在本发明实施例中,生成的应用数据可以作为产品序列号、密钥等;步骤b7:判断解码失败次数是否超过预设值,是则报错;否则更新解码失败次数,芯片下电,返回步骤b1。优选的,在本实施例中,解密失败次数的初始值为0,更新解码失败次数具体为:解码失败次数自加1。实施例三本发明实施例三提供一种基于芯片生成非重复应用数据的装置,如图4所示,包括注册模块30和应用模块31,注册模块30包括:下电上电子模块300,用于对芯片子模块301进行下电再上电操作;芯片子模块301,用于保存固定长度的数据;读取保存子模块302,用于在芯片子模块301上电期间从芯片子模块301上读取固定长度的数据并保存;具体的,本实施例中的读取保存子模块302包括:读取保存单元,用于从芯片子模块301的固定位置上读取固定长度的数据并保存;第一判断单元,用于判断读取次数是否到达预设次数,是则触发第一生成子模块303工作,否则触发下电上电子模块300工作;第一生成子模块303,用于根据读取保存子模块302保存的数据生成第一数据列表;对应的,本实施例中的第一生成子模块303具体用于根据读取保存单元保存的数据生成第一数据列表;第一判断子模块304,用于依次判断第一生成子模块303生成的第一数据列表的各个数据中相同比特位上的值是否均相同,是则将对应数据位标记为1得到标记数据,否则将对应数据位标记为0得到标记数据;具体的,在本实施例中,第一判断子模块304包括:第一作为单元,用于将第一生成子模块303生成的第一数据列表中各个数据的最高比特位作为当前比特位;第二判断单元,用于判断第一生成子模块303生成的第一数据列表中各个数据的当前比特位上的值是否相同,是则将对应数据位标记为1并保存,否则将对应数据位标记为0并保存;第三判断单元,用于判断是否处理完第一生成子模块303生成的第一数据列表中各个数据的所有比特位上的值;第二作为单元,用于当第三判断单元判断为否时将第一生成子模块303生成的第一数据列表中各个数据的下一比特位作为当前比特位;生成单元,用于当第三判断单元判断为是时根据第二判断单元保存的数据位生成标记数据;可选的,本实施例中的第一判断子模块304还用于对第一生成模块303生成的第一数据列表中的所有数据进行异或运算得到标记数据;第一提取子模块305,用于根据第一判断子模块304得到的标记数据中标记为1的数据位从第一生成子模块303生成的第一数据列表的数据中获取对应比特位上的值得到第一数据,从第一数据中提取第一预设长度的数据得到第一标识码;优选的,本实施例中的第一提取子模块305还用于判断第一数据的长度是否小于第一预设长度,是则报错,否则从第一数据中提取第一预设长度的数据得到第一标识码。生成编码子模块306,用于生成第二预设长度的随机数,并对随机数进行纠错编码得到纠错码字;优选的,生成编码子模块306使用纠错编码方式为bhc编码,也可以为其他纠错编码方式(例如前向纠错编码等),在此不再赘述;第二生成子模块307,用于根据生成编码子模块306得到的纠错码字和第一提取子模块305得到的第一标识码生成帮助数据;优选的,在本实施例中,第二生成子模块307具体用于对生成编码子模块306得到的纠错码字和第一提取子模块305得到的第一标识码进行异或运算得到帮助数据;保存子模块308,用于将第二生成子模块307生成的帮助数据与第一判断子模块304得到的标记数据对应保存;应用模块包31括:获取读取子模块311,用于获取保存子模块308保存的标记数据,并从芯片子模块301上读取固定长度的数据;第一获取子模块312,用于根据获取读取子模块311获取的标记数据中标记为1的数据位从获取读取子模块311读取的数据中获取对应比特位上的值得到比特串;第二提取子模块313,用于从第一获取子模块312获取的比特串中提取第一预设长度的数据得到第二标识码,读取保存子模块308保存的帮助数据;第三生成子模块314,用于根据第二提取子模块313得到的第二标识码和帮助数据生成运算结果;优选的,在本实施例中,第三生成子模块314具体用于对第二提取子模块313得到的第二标识码和读取的帮助数据进行异或运算得到运算结果;解码子模块315,用于对第三生成子模块314生成的运算结果进行纠错解码,如解码成功则将第二标识码作为解码数据;如解码失败且纠错成功则根据解码结果修改第二标识码中所有出错比特位上的值得到解码数据;优选的,解码子模块315使用纠错解码方式可为bhc解码,也可以为其他纠错解码方式(例如前向纠错解码等),在此不再赘述;报错子模块316,用于当解码子模块315在解码失败且纠错失败时进行报错;第四生成子模块317,用于根据解码子模块315得到的解码数据和预设数据生成扩展序列;优选的,第四生成子模块317具体用于使用哈希算法对解码子模块315得到的解码数据和预设数据进行哈希计算得到扩展序列;第二获取子模块318,用于从第四生成子模块317生成的扩展序列中获取所需的应用数据。在本实施例中,应用模块31还可包括第二判断子模块和更新子模块;第二判断子模块用于当解码子模块315在解码失败且纠错失败时判断解码失败次数是否超过预设值;更新子模块用于当第二判断子模块判断为否时更新解码失败次数,触发获取读取子模块311进行工作;报错子模块316具体用于当第二判断子模块判断为是时进行报错。本发明技术方案通过在注册过程中进行多次下电上电之后读取芯片上固定位置中的数据,获得第一标识码的相对稳定态;并对随机数进行编码,保证每颗芯片具有不一样的纠错码字,防止攻击者通过攻击纠错码字获得相应的信息;应用过程为保证应用数据输出的稳定性,第二标识码使用稳定态时比特串中的预设长度数据,最大限度减少纠错码需要纠错的次数,提高基于芯片生成非重复应用数据的效率,使用本发明技术方案可生成唯一的任意长度的应用数据,提高应用数据的使用安全性。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1