基于控制流隐藏的轻量级密码芯片总线防护系统及方法技术方案

技术编号:27582685 阅读:17 留言:0更新日期:2021-03-09 22:40
本发明专利技术公开了一种基于控制流隐藏的轻量级密码芯片总线防护系统,它包括HCache单元、地址序列随机化单元和CPU控制器,HCache单元包括HCache控制器和HCache存储器,地址序列随机化单元包括洗牌单元、追踪寄存器和随机数发生器、计数器、标志寄存器、多路选择器和控制器接口,本发明专利技术以及轻量级密码应用场景下资源受限的特点,通过综合运用地址序列随机重排、基于HCache的并发机制、触发阈值动态设定等手段,在被保护代码段执行的过程中对指令地址序列进行随机重排,以达到破坏地址信息与控制流关联的目的,并极大地降低了指令重排的频率,在保证系统安全的同时,最大程度的保证了轻量级应用系统的性能。级应用系统的性能。级应用系统的性能。

【技术实现步骤摘要】
基于控制流隐藏的轻量级密码芯片总线防护系统及方法


[0001]本专利技术涉及密码安全防护
,具体地指一种基于控制流隐藏的轻量级密码芯片总线防护系统及方法。

技术介绍

[0002]随着智能手机、无线通信、无线传感网,特别是RFID的广泛普及和应用,以各种嵌入式系统为代表的一大批相关应用成为不可避免的发展趋势。并对系统安全提出了新的需求。鉴于基于嵌入式系统的应用在电路规模、传输、功耗等方面有着苛刻的要求。美国总统信息化咨询委员会在报告“Cyber Security:A Crisis of Prioritization”(网络安全:急需优先考虑的重大研究课题)中指出:“传统密码学中的各种加密方法对安全性十分关注,但是对高速和复杂环境的实用性关注不够。因此需要发展轻量级密码”。
[0003]轻量级密码作为一种特殊的密码算法,在硬件实现、加密速度、运行功耗等方面与AES(Advanced Encryption Standard)等高强度密码算法相比有明显的优势。随着各类低功耗、小规模电路系统的广泛使用,轻量级密码在实际生活中的应用越来越多。此外,由于轻量级密码的主要应用场景为低生产成本的安全产品,而这些产品在批量生产后会得到广泛的应用。一旦这些产品中的安全防护机制被攻破,将会造成巨大的损失。例如,Yeo等人提出了对轻量级分组密码的有效代数攻击,可能会造成广泛的安全问题和巨额的经济损失。
[0004]轻量级的概念是针对密码算法实现环境提出的,其安全性不仅与采用的密码算法相关,而且还涉及具体实现和设计等方面。近年来,人们对各种密码算法的实现进行了大量的研究,其结果表明任何密码算法都可以用软件或硬件来实现。虽然硬件加密速度快、安全性高、安装容易。但由于轻量级应用对体积、功耗以及系统升级等方面的要求,大部分仍采用软件的方式,并配以相应的安全防护机制,以保证产品的灵活性和轻便性,并控制产品成本。以智能卡为例,其认证操作、存取权限控制和数据加密等功能均依托于内部的COS实现,从而防止了攻击者针对逻辑级的非授权攻击。
[0005]实际应用表明,现有的地址总线防护方法大部分存在效果不理想、可行性低的缺点。例如,基于加密的地址总线防护已经被证明并不能够有效防止控制流的泄露;ORAM方法由于每执行一条指令都需要对内存中的所有指令进行读操作,从而导致系统性能严重下降,使得其很难应用到对性能、功耗存在严格限制的轻量级应用当中。因此,设计一种能够与轻量级密码应用场景相适应,具备较小资源和时间代价,又能提供较好防护效果的总线防护结构及方法对于提升轻量级密码应用安全的防护等级具有十分重要的现实意义。
[0006]参考文献:Yeo S L,Le V P,Khoo K.Improves algebraic attacks on lightweight block ciphers[J].Journal of Crptographic Engineering,2020,https://doi.org/10.1007/s13389-020-00237-4.

技术实现思路

[0007]本专利技术的目的就是要提供一种基于控制流隐藏的轻量级密码芯片总线防护系统,
本专利技术综合考虑了轻量级密码应用资源受限以及敏感信息安全防护两方面的需求,通过运用地址序列随机化单元、HCache、触发计数值阈值动态调整、指令追踪等手段,能够以较小的资源和时间代价实现有效的总线控制流防护,从而防止基于控制流的敏感信息泄露。
[0008]为实现此目的,本专利技术所设计的基于控制流隐藏的轻量级密码芯片总线防护系统,它包括HCache(硬盘高速缓存)单元、地址序列随机化单元和CPU控制器,HCache单元包括HCache控制器和HCache存储器,地址序列随机化单元包括洗牌单元、追踪寄存器和随机数发生器、计数器、标志寄存器、多路选择器和控制器接口,所述CPU控制器用于在运行欲保护代码段指令时向HCache控制器发出控制信号,使HCache控制器将内存中的数据或代码拷贝至HCache存储器;
[0009]读或写内存的请求在被传送到内存的控制单元之前由HCache控制器截获,HCache控制器将截获的该请求的地址信息分成标签域、组索引域和数据索引域,HCache控制器通过组索引域在HCache存储器中确定包含所要求的代码和数据的HCache行位置,并检查对应HCache行的有效位,以确定该HCache行当前是否处于活动状态,并且将该请求的地址标签域的值与HCache行的标签比较,当比较结果显示HCache行当前是活动的,并且请求的地址标签域与HCache行的标签的值也相同,则HCache命中,否则HCache控制器将重新向内存进行后续欲保护代码段指令的预取操作;
[0010]在HCache命中的情况下,HCache控制器使用数据索引域,在HCache行中选择对应的代码和数据,并提供给CPU控制器,HCache控制器将该HCache行的锁定位置1,并将锁定计数器加1,当锁定计数器值达到了锁定计数器预设值时,HCache控制器向洗牌单元发送触发信号,使洗牌单元对内存中欲保护代码段指令地址序列进行随机重排;
[0011]控制器接口用于将欲保护代码段指令地址序列装载至追踪寄存器中的寄存器PV0中,并利用随机数发生器驱动洗牌单元对寄存器PV0中所保存的欲保护代码段指令地址序列进行随机重排,并将重排后的结果保存至追踪寄存器中的寄存器PV1中;
[0012]重排完成后,利用随机数发生器产生随机数,驱动多路选择器随机选择寄存器PV1中的寄存器单元,并判断标志寄存器中对应的标志位是否为1,如果为1,则驱动多路选择器重新选择寄存器PV1中的寄存器单元,并将标志寄存器中对应的标志位置1,CPU控制器通过控制器接口将寄存器PV0中保存的欲保护代码段指令按指令序列的地址搬移至寄存器PV1中对应的重排地址位置中,同时计数器加1,当计数器的计数值达到计数值阈值时,重排完毕。
[0013]本专利技术的地址序列随机化单元作为实施控制流隐藏的核心部件,主要用于实现指令地址序列随机化和指令追踪机制。地址序列随机化单元利用随机数发生器实时产生的随机数,对敏感代码的执行进行地址序列随机重排。重排完毕后内存指令搬移过程中地址信息也会在地址总线上出现,为了防止攻击者推断出“新”“旧”地址之间的关联,导致防护失效,基于随机数发生器实时产生的随机数对当前搬移的指令进行随机选择。
[0014]在指令地址随机化重排结束后,为保证系统的正常运行,地址序列随机化单元将根据指令新地址与旧地址的关系进行追踪,以保证在地址总线上的地址序列表现为乱序的情况下,指令按程序指定顺序执行,从而在不影响轻量级密码算法运行结的前提下达到隐藏控制流的效果。
[0015]在每次执行被保护代码段之前基于地址序列随机化单元对指令地址序列进行随
机重排能够带来较高的安全性,但当代码段较长时也将造成系统较大的延时,从而导致系统性能的下降。为在提升控制流安全性的同时,尽量保证系统的性能。被保护代码段在运行之前本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于控制流隐藏的轻量级密码芯片总线防护系统,其特征在于:它包括HCache单元(1.1)、地址序列随机化单元(1.2)和CPU控制器(1.4),HCache单元(1.1)包括HCache控制器(2.1)和HCache存储器(2.2),地址序列随机化单元(1.2)包括洗牌单元(3.1)、追踪寄存器(3.2)和随机数发生器(3.3)、计数器(3.4)、标志寄存器(3.5)、多路选择器(3.6)和控制器接口(3.7),所述CPU控制器(1.4)用于在运行欲保护代码段指令时向HCache控制器(2.1)发出控制信号,使HCache控制器(2.1)将内存(1.3)中的数据或代码拷贝至HCache存储器(2.2);读或写内存(1.3)的请求在被传送到内存(1.3)的控制单元之前由HCache控制器(2.1)截获,HCache控制器(2.1)将截获的该请求的地址信息分成标签域、组索引域和数据索引域,HCache控制器(2.1)通过组索引域在HCache存储器(2.2)中确定包含所要求的代码和数据的HCache行位置,并检查对应HCache行的有效位,以确定该HCache行当前是否处于活动状态,并且将该请求的地址标签域的值与HCache行的标签比较,当比较结果显示HCache行当前是活动的,并且请求的地址标签域与HCache行的标签的值也相同,则HCache命中,否则HCache控制器(2.1)将重新向内存(1.3)进行后续欲保护代码段指令的预取操作;在HCache命中的情况下,HCache控制器(2.1)使用数据索引域,在HCache行中选择对应的代码和数据,并提供给CPU控制器(1.4),HCache控制器(2.1)将该HCache行的锁定位置1,并将锁定计数器加1,当锁定计数器值达到了锁定计数器预设值时,HCache控制器(2.1)向洗牌单元(3.1)发送触发信号,使洗牌单元(3.1)对内存(1.3)中欲保护代码段指令地址序列进行随机重排;控制器接口(3.7)用于将欲保护代码段指令地址序列装载至追踪寄存器(3.2)中的寄存器PV0中,并利用随机数发生器(3.3)驱动洗牌单元(3.1)对寄存器PV0中所保存的欲保护代码段指令地址序列进行随机重排,并将重排后的结果保存至追踪寄存器(3.2)中的寄存器PV1中;重排完成后,利用随机数发生器(3.3)产生随机数,驱动多路选择器(3.6)随机选择寄存器PV1中的寄存器单元,并判断标志寄存器(3.5)中对应的标志位是否为1,如果为1,则驱动多路选择器(3.6)重新选择寄存器PV1中的寄存器单元,并将标志寄存器(3.5)中对应的标志位置1,CPU控制器(1.4)通过控制器接口(3.7)将寄存器PV0中保存的欲保护代码段指令按指令序列的地址搬移至寄存器PV1中对应的重排地址位置中,同时计数器(3.4)加1,当计数器(3.4)的计数值达到计数值阈值时,重排完毕。2.根据权利要求1所述的基于控制流隐藏的轻量级密码芯片总线防护系统,其特征在于:所述HCache存储器(2.2)包含目录存储段、状态信息段和数据项段,每一个HCache行都由目录存储段、状态信息段和数据项段表示,HCache存储器(2.2)使用目录存储段来记录每个HCache行是由内存(1.3)的什么地方拷贝而来,HCache存储器(2.2)基于数据项段存储来自内存(1.3)的信息,在HCache存储器(2.2)中还具有用来记录状态...

【专利技术属性】
技术研发人员:欧庆于罗芳杨鹏
申请(专利权)人:中国人民解放军海军工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1