一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

抵御数据篡改和模板攻击的熔丝读取方法和控制器及芯片与流程

2021-04-20 20:38:00 来源:中国专利 TAG:芯片 篡改 抵御 读取 器及


1.本发明涉及数字芯片设计领域,特别是一种抵御数据篡改和模板攻击的熔丝读取方法和控制器及芯片。


背景技术:

2.当前许多电子设备考虑到数据安全性,选择将重要的系统参数、加解密过程中使用到的密钥数据存储在熔丝设备中。通常需要设计一个熔丝控制器完成数据烧写到熔丝中以及数据从熔丝中读出的工作。
3.系统参数影响着系统的各个组件能否正常的工作,攻击者可以在熔丝控制器读取此类数据时,通过控制电子设备的电压,导致读取出的参数是错误的,进而破坏设备正常工作状态。比如,某款芯片分vip版本和普通版本,不同的版本开放的模块功能不同。芯片通过上电后读取系统参数识别当前的芯片版本,从而决定是否开放vip权限。若熔丝控制器读取系统参数过程中系统参数被篡改,电子设备将无法正确区分芯片版本。由此引发的可靠性问题势必影响产品的口碑。
4.另一个安全隐患是,熔丝内存储的密钥数据是由控制器读取出来,提供给加解密模块使用。目前加解密算法设计的越来越复杂,攻击者想要通过攻破加解密模块来获取密钥的难度很高,且针对各种攻击手段的防御措施也层出不穷。攻击者转而从熔丝控制器读取密钥的过程下手。熔丝控制器在读取密钥数据的过程中,会留下各种形式的信息,如功耗,电磁辐射,运行时间等。这些信息可以被收集与分析并以此恢复出熔丝内存储的密钥信息。
5.而对于密钥数据的传输,传统的直接拷贝方式可以很轻易地被模板攻击所突破,因此,也有一些针对模板攻击的防御方式,比如在拷贝过程中增加随机因素,使得数据以随机的顺序被拷贝。
6.在该数据传输方法中,增加了一个随机序列的输入,给定了一个长度大小一定的随机序列之后,源地址的数据以随机的顺序拷贝到目的地址。这样在其每次传输过程都不相同且无法预测,就无法在攻击时获得大量功耗的统计信息。
7.然而,在模板攻击的效率和精度不断提升的现在,这样的方法的安全性仍然不够,因为攻击者在建模时只要将所有的密钥数据设成相同的数值就能进行准确的建模了。而在攻击时,由于理想状况下,一次数据传输拷贝过程获得的功耗信息就有可能泄露所有的传输数据信息,因此攻击者虽然无法得到正确的顺序,但是可以得到全部的数据,只要进行一定次数的穷举就能完成攻击与破解。
8.因此,这类纯粹加入随机因素的防御方法虽然有一定安全性,但仍有风险。


技术实现要素:

9.本发明的目的在于提供一种抵御数据篡改和模板攻击的熔丝读取方法和控制器及芯片,主要解决上述现有技术存在的问题,它具有更高的安全性。一方面,可以防止数据
被篡改导致设备错误;另一方面,即使模板攻击能对熔丝控制器读取的数据进行完美的解析,仍然很难得到任何的密钥信息。
10.为了实现上述目的,本发明所采用的技术方案是提供一种抵御数据篡改和模板攻击的熔丝读取方法,用于安全读取存放于熔丝器件中的存储数据,所述存储数据的数据类型包括密钥数据或系统参数数据,其特征在于,所述熔丝读取方法包括:
11.根据所述存储数据对应的多个所述数据块的数量,生成用于随机化所述数据块的读取顺序的随机数据块号序列;
12.根据所述数据块所包含的字节数量,生成用于随机化每个所述数据块的所述字节数据的读取顺序的随机字节号序列;
13.判断当前数据块的数据类型,并针对不同数据类型采用不同的读取操作;
14.所述读取操作包括:
15.以所述数据块为单位,根据所述随机数据块号序列读取所述存储数据;
16.在一个所述数据块内,以所述随机字节号序列的顺序读取所述字节数据;
17.每读完一个所述数据块,将读取的所述字节数据,按照所述字节数据在所述熔丝器件中的顺序,存放于存储单元中,直到全部所述数据块读取完毕后,在所述存储单元中得到顺序存放的所述存储数据。
18.进一步地,所述熔丝读取方法包括:
19.在每次读取所述字节数据前,生成读取周期随机数;
20.所述以所述随机字节号序列的顺序读取所述字节数据包括:更新所述熔丝器件的读取周期,然后配合所述读取周期,从所述熔丝器件读取所述字节数据。
21.进一步地,当所述存储数据是所述系统参数数据时,所述以所述随机字节号序列的顺序读取所述字节数据包括:
22.重读每一个所述数据块,对读取到的所述字节数据计算校验值并保存,直到读取次数大于等于读取次数阈值;
23.比对保存的全部所述校验值是否一致,若一致,则继续读取下一个数据块;如果不一致丢弃所述校验值对应的所述字节数据,退出读取,并要求重启设备。
24.进一步地,所述读取次数阈值为3。
25.进一步地,所述校验值是crc校验值。
26.进一步地,当所述存储数据是所述密钥数据时,所述以所述随机字节号序列的顺序读取所述字节数据包括:
27.在读取一个所述数据块之前,先根据所述数据块中包含的字节长度,生成用于随机选择加扰所述字节数据的随机字节号;
28.每读取一个所述字节数据,都对读取的所述字节数据施加干扰,得到对应的加扰字节数据;
29.比对当前读取的所述字节数据的字节号与所述随机字节号,如果相等,就将所述加扰字节数据按照所述字节数据在所述熔丝器件中的顺序,存放于存储单元中;反之,将所述字节数据按照所述字节数据在所述熔丝器件中的顺序,存放于存储单元中;
30.当一个完整的所述数据块读取完毕后,利用所述字节数据中的所述纠错码,解析出所述数据块对应的所述原始数据,按照所述字节数据在所述熔丝器件中的顺序,存放于
存储单元中,完成一个所述数据块的读取。
31.进一步地,所述纠错码由rs纠错算法生成。
32.进一步地,所述rs纠错算法中,每44字节的所述存储数据中包含32字节所述原始数据和12字节的纠错码。
33.本发明还提供一种抵御数据篡改和模板攻击的熔丝控制器,其特征在于,适于执行所述权利要求1所述的抵御数据篡改和模板攻击的熔丝读取方法。
34.本发明还提供一种数字芯片,其特征在于,包括:熔丝控制器,适于执行所述权利要求1所述的抵御数据篡改和模板攻击的熔丝读取方法;熔丝器件,适于存储密钥数据或系统参数数据;存储单元,适于存储被所述熔丝控制器读出的所述密钥数据或所述系统参数数据。
35.鉴于上述技术特征,本发明具有如下优点:
36.1,本发明采用双重随机序列,极大的增加攻击者通过穷举法获取真实序列顺序的难度。
37.2、本发明采用的随机读取周期长度,使得熔丝控制器读取每个字节的时间长度是不同的,结合双重随机序列读取,使得同样的数据序列在多次模板攻击下获得的功耗、运行时间数据也是完全不同的,能够有效地抵御模板攻击。
38.3、本发明对读取的数据施加干扰操作,带来的额外功耗也使得模板攻击的效率进一步降低。
39.4、本发明利用rs编码的纠错能力,在读取数据块过程中,在rs编码的纠错能力范围内,随机1个字节错误向后传递,即后续数据处理过程中数据已经失真,使得模板攻击在后续流程中失效。
40.5,本发明提出熔丝数据的防篡改技术,由双重随机序列、随机读周期长度以及多次读取后计算crc校验值后比对的方式,提升了数据被篡改的难度。攻击者必须在多次随机读取中,每次都命中同一份数据进行同样的篡改,才能篡改成功。
附图说明
41.图1是本发明抵御数据篡改和模板攻击的熔丝读取方法的一个较佳实施例的流程图;
42.图2是本发明一种执行抵御数据篡改和模板攻击的熔丝读取方法的数字芯片的示意图。
43.图中,100

熔丝控制器,200

熔丝器件,300

存储单元。
具体实施方式
44.下面结合具体实施方式,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
45.请参阅图1,本发明公开了一种抵御数据篡改和模板攻击的熔丝读取方法,用于安全读取存放于熔丝器件中的存储数据,包括密钥数据或系统参数数据。密钥数据由原始数
据和原始数据的纠错码构成,系统参数数据仅包含原始数据。密钥数据使用的纠错算法是rs算法,具体而言,是每44字节的存储数据中包含32字节原始数据和12字节的纠错码,该算法能够纠正6个字节错误。
46.其中,对于密钥数据,防护的重点在于防读取,因为一旦密钥泄露,就会导致敏感的加密信息暴露。对于系统参数,防护的重点在于防篡改,因为系统数据本身一般并没有需要保密的需求,但是一旦被篡改则可能对系统的配置造成不利的影响。
47.存储数据保存在熔丝器中,是以数据块为单位组织的,当存储数据的数量大于一个数据块的大小时,会被存放在多个不同的数据块中。读取存储数据的过程,可以分解为一次或者多次以数据块为单位的读取动作。
48.请参阅图1,展示了本实施例中读取存储数据的流程。
49.步骤s101是存储数据读取流程的开始,存储数据以数据块为单位被读取。
50.在步骤s102中,在读取熔丝器件中的字节数据前,先生成用于随机化数据块的读取顺序的随机数据块号序列。随机数据块号序列根据存储数据对应的数据块的数量生成,数据块的块号与随机数据块号序列中值一一对应。然后,按照随机数据块号序列中指明的顺序,选择一个尚未读取的数据块。
51.如步骤s103所示,在同一数据块内,会生成用于随机化字节数据的读取顺序的随机字节号序列。随机字节号序列根据数据块大小生成,字节数据的字节号与随机字节号序列中值一一对应。随机字节号序列结合随机数据块号序列,构成了本实施例中的双随机序列,极大的增加攻击者通过穷举法获取真实序列顺序的难度。
52.在步骤s104中,根据数据块内保存是密钥数据还是系统参数数据,选择不同的保护策略。针对系统参数数据使用基于crc校验对比的机制来包含内容被篡改。针对密钥数据使用基于rs纠错码的加扰机制来防止内容泄露,特别,加扰操作带来的额外功耗也使得模板攻击的效率进一步降低,而且,读取数据块过程中随机1个字节错误向后传递,即后续数据处理过程中数据已经失真,使得模板攻击在后续流程中失效。基于rs纠错码的加扰机制能够在不增加额外数据搬运开销的前提下有效干扰模板攻击。
53.对系统参数数据的保护,由步骤s105至步骤s113构成,具体包含:
54.步骤s105中,根据随机字节号序列中指明的顺序开始从熔丝器件的数据块中读取字节数据。每次读取所述字节数据前,先生成读取周期随机数,更新所述熔丝器件的读取周期,然后配合所述读取周期,从所述熔丝器件读取所述字节数据。这样,同样的数据序列在多次模板攻击下获得的功耗、运行时间数据也将完全不同。
55.读取到字节数据在步骤s106中,按照字节数据在熔丝器件中的顺序,存放于存储单元中。
56.如步骤s107所示,如果当前数据块的字节数据没有完全读取完毕,则跳转到步骤s105中继续读取。当数据块中的全部字节数据都被读取完成后,进入步骤s108,计算数据块中的全部字节数据的crc校验值并保存。
57.在步骤s109中,判断对同一数据块的读取次数是否大于等于读取次数阈值。
58.在一个实施例中,所述读取次数阈值为3,也就是说,对每一个数据块,都要重复读取3次,并进行3次crc校验值计算。因此,在具体实施中,会比对对应当前数据块的读取次数是否已经大于等于3次。如果需要回到步骤s105,重复读取数据块进行下一次crc校验值计
算,则先在步骤s110中重新生成一次随机字节号序列后再回到步骤s105,保证即便是读取同一数据块,其字节数据的读取顺序也是不同的,提高抗模板攻击的能力。反之,当crc校验值已经大于等于3次后,在步骤s111中比对保存的全部crc校验值是否一致。如果不一致在认为在读取过程中存储数据被篡改,那么进入步骤s112中,丢弃crc校验值对应的字节数据,退出读取,并要求重启设备。如果一致,则认为当前数据块被正确读出且没有被篡改,就进入到步骤s121中。对于攻击者来说,只有3次篡改操作都命中同一个系统参数,且篡改结果一致才能骗过熔丝控制器。
59.对密钥数据的保护,由步骤s113至步骤s120构成,具体包含:
60.步骤s113,根据数据块中包含的字节长度,生成用于随机选择加扰字节数据的随机字节号。随机字节号与数据块中全部字节数据的字节号之一对应。
61.然后在步骤s114中,根据随机字节号序列中指明的顺序开始从熔丝器件的数据块中读取一个字节数据。每次读取字节数据前,先生成读取周期随机数,更新熔丝器件的读取周期,然后配合读取周期,从熔丝器件读取字节数据。这样,同样的数据序列在多次模板攻击下获得的功耗、运行时间数据也将完全不同。
62.针对每个读取到的字节数据,都会在步骤s115中施加干扰,生成一个加扰字节数据。具体加扰的方式可以是生成一字节的随机数与每一个字节数据进行逻辑运算。
63.在步骤s116中,比对当前读取的所述字节数据的字节号与所述随机字节号,如果相等,就在步骤s117中将错误的加扰字节数据按照字节数据在熔丝器件中的顺序,存放于存储单元中;反之,在步骤s118中将正确的未经加扰的字节数据按照所述字节数据在所述熔丝器件中的顺序,存放于存储单元中。
64.当一个字节的存储数据(加扰字节数据或者字节数据)被存入存储单元后,在步骤s119中判断是否一个完整的数据块已经读取完毕,如果还有需要读取的字节,回到步骤s114继续读取。
65.得到由加扰数据和字节数构成的完整数据块的数据后,由步骤s120完成纠错处理。因为密钥数据包含原始数据和纠错码两部分,且加扰字节数据的数目小于纠错码可以纠正的字节数目,经过rs解码模块,加扰字节数据被修复成正确的字节数据。在字节数据解析出的原始数据部分,按照字节数据在熔丝器件中的顺序,存放于存储单元中,完成一个所述数据块的读取,就进入到步骤s121中。
66.步骤s121同时应用与系统参数数据和密钥数据,在熔丝器件结束对当前数据块的读取操作并准备好读取下一个数据块后,进入步骤s122。
67.步骤s122中,检查存储数据对应的数据块是否已经被全部读取,如果尚有未被读取的数据块,根据按照随机数据块号序列中指明的顺序,选择下一个尚未读取的数据块,跳转到步骤s103开始读取。反之,则如步骤s123所示,认为已经完成了全部存储数据的读取,退出读取流程。
68.本发明的一个较佳实施例,还包含一种抵御数据篡改和模板攻击的熔丝控制器,执行上述实施例中的抵御数据篡改和模板攻击的熔丝读取方法。
69.请参阅图2,本发明的一个较佳实施例,还包含一种数字芯片,包括熔丝控制器100、熔丝器件200和存储单元300。熔丝控制器100,用于执行上述实施例中的抵御数据篡改和模板攻击的熔丝读取方法。熔丝器件200用于存储上述实施例中的密钥数据或系统参数
数据。存储单元300被用于存储由熔丝控制器100执行熔丝读取方法后,读出的密钥数据或系统参数数据,以及各类熔丝控制器100执行读取方法时需要的工作参数,例如保存的crc校验值等。
70.以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜