CN117633920A - 一种敏感数据传输总线架构、控制逻辑电路及传输*** - Google Patents

一种敏感数据传输总线架构、控制逻辑电路及传输*** Download PDF

Info

Publication number
CN117633920A
CN117633920A CN202311719310.4A CN202311719310A CN117633920A CN 117633920 A CN117633920 A CN 117633920A CN 202311719310 A CN202311719310 A CN 202311719310A CN 117633920 A CN117633920 A CN 117633920A
Authority
CN
China
Prior art keywords
sensitive data
sensitive
data
bit
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311719310.4A
Other languages
English (en)
Other versions
CN117633920B (zh
Inventor
邓峰
潘武聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Guowei Core Semiconductor Co ltd
Original Assignee
Shanghai Guowei Core Semiconductor Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Guowei Core Semiconductor Co ltd filed Critical Shanghai Guowei Core Semiconductor Co ltd
Priority to CN202311719310.4A priority Critical patent/CN117633920B/zh
Publication of CN117633920A publication Critical patent/CN117633920A/zh
Application granted granted Critical
Publication of CN117633920B publication Critical patent/CN117633920B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请提供一种用于芯片内部的敏感数据传输总线架构、控制逻辑电路及传输***,应用于半导体芯片设计技术领域,其中传输总线架构定义有传输写使能信号接口、地址数据信号接口、敏感数据信号接口和反馈等待信号接口,因而在分发传输的输入侧和输出侧来看,分发传输只有写使能,不存在读使能,故分发传输只能由前级向后级传输,而不能从后级向前级传输,能够规避敏感数据反向泄漏的可能性,而且基于新总线架构传输,实现片内敏感数据传输的统一性、可扩展性,以及提高了传输安全性。

Description

一种敏感数据传输总线架构、控制逻辑电路及传输***
技术领域
本申请涉及半导体芯片设计技术领域,具体涉及一种用于芯片内部的敏感数据传输总线架构、控制逻辑电路及传输***。
背景技术
出于保护知识产权及防止黑客攻击等原因,现代半导体芯片的设计实现中通常集成一些较为敏感的数据(简称敏数),譬如:严禁篡改但可公开的且用于标识芯片制造商身份信息的CUID(Chipset Unique Identification,芯片唯一标识)数据;严禁篡改又需保密的且用于片内密码处理引擎开展工作的Root-key(根密钥)数据;按需更新且需保密的且用于片内某些加密/解密处理引擎所需的输入激励类数据(包括但不限于:密钥、算法参数、输入分组)等等。
现有方案对这些具有敏感属性的片内数据的传输,即从相应的片内提供源(生成端,也可称为敏数源)传输到已知的片内接收地(即接收端,也可称为敏数端)的传输过程,往往没有进行特别的处理考量,容易在传输过程中造成这些数据的泄露、篡改等。
发明内容
有鉴于此,本说明书实施例提供适合于在半导体芯片内部、以较小的实施成本(譬如芯片的资源/功耗代价、性能消耗等)完成来自于众多敏数源的芯片敏感数据被安全地分发到片内指定敏收端的一种简单总线及控制器的电路架构。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种敏感数据传输总线架构,应用于芯片内的敏数源和敏数端之间的敏感数据传输,所述敏感数据传输总线架构包括:
传输写使能信号接口,其中所述传输写使能信号接口用于传输一组敏感数据的一趟分发操作的使能信号,所述传输写使能信号的位宽为R且为独热式有效,R表示敏数端的数量,敏数端为敏感数据的接收端;
地址数据信号接口,其中所述地址数据信号接口用于传输所述分发操作对应的操作数据,所述操作数据包括所述敏感数据对应的敏数源的索引编号、敏数端存储空间的寻址信号、以及所述索引编号的第一基准校验值和所述寻址信号的第二基准校验值,所述地址数据信号接口的位宽为n+i+v,其中n为所述寻址信号的位宽;i为所述索引编号的位宽;v为所述第一基准校验值和所述第二基准校验值的位宽;
敏感数据信号接口,其中所述敏感数据信号接口用于传输所述分发操作对应预设位宽的敏感数据;
反馈等待信号接口,其中所述反馈等待信号接口用于敏数端在未准备好接收所述分发操作对应传输敏感数据时设置忙反馈信号,当所述忙反馈信号有效时,当前粒度的单次传输不被执行,待等到所述忙反馈信号无效时所述单次传输再被执行。
优选地,所述地址数据信号接口的位宽为可编程位宽;和/或,所述敏感数据信号接口的位宽为可编程位宽。
优选地,所述敏感数据信号接口的位宽不大于所有敏数源的单组敏感数据量的最小值,以便于对单组敏感数据量各不相同的多个敏数源统一地开展分发传输。
优选地,所述地址数据信号接口传输的所述操作数据用于:所述目标敏数端在接收到所述传输写使能信号接口中自身对应的使能信号位有效时,根据接收到的所述操作数据中部分或全部数据进行检测后存储处理。
优选地,根据接收到的所述操作数据中部分或全部数据进行检测后存储处理,包括:
对所述操作数据中n位长的所述寻址信号与对应自身存储区的地址位段进行检测,当发现所述寻址信号不属于本敏数端对应的寻址空间,则屏蔽接收所述敏感数据,并将自身的敏感数据存储区清空;
和/或,对所述操作数据中i位长的索引编号与片内敏数源的索引值位段进行检测,当发现所述索引编号的敏数源不属于本敏数端合法对应的敏数源,则屏蔽接收所述敏感数据,并将自身的敏感数据存储区清空;
和/或,对所述操作数据中v位长的第一基准校验值和第二基准校验值,与自身计算生成的实时校验值进行比对校验,当发现校验结果不一致时,则屏蔽接收所传敏感数据,并将自身的敏感数据存储区清空,其中所述实时校验值为敏数端根据实际接收到的所述寻址信号和所述索引编号而实时计算生成的校验值。
优选地,所述地址数据信号接口传输的所述寻址信号还用于:在所述分发操作的敏数源中,单个敏数源在一趟分发的整个传输过程中伴随提供位宽全长的且每次传输中依序变化的敏数端存储空间的寻址信号,以使目标敏数端基于所述传输写使能信号接口的有效位和所述依序变化的敏数端存储空间的寻址信号中的2位数据进行敏感数据的存储。
优选地,所述第一基准校验值和/或所述第二基准校验值为基于以下任意一种校验方式得到的校验值:奇偶校验、循环冗余码校验。
优选地,所述第一基准校验值和/或所述第二基准校验值在敏数源向所述敏感数据信号接口输入数据时生成。
优选地,所述敏感数据传输总线架构还包括监测接口,其中所述监测接口用于传输异常配置信号,以使目标敏数端基于所述异常配置信号进行置起和/或预定义的响应机制,并自行判断是接收还是屏蔽当前分发传输。
本说明书实施例还提供一种敏感数据传输控制逻辑电路,设置于芯片内,且位于芯片内的敏数源与如本申请中任意一项所述的敏感数据传输总线架构之间,所述敏感数据传输控制逻辑电路包括:用户寄存器子模块、安保子模块、仲裁子模块和与所述敏数源对应的输入端口;
所述输入端口用于连接敏数源;
所述仲裁子模块用于对多个所述输入端口的敏数源进行仲裁;
所述配置寄存器包括至少一对寄存器组,每对寄存器组包括安保分发屏蔽使能寄存器和安保控制寄存器,所述安保分发屏蔽使能寄存器用于配置该安保单元安保单元对应的合法敏数源,所述安保控制寄存器用于配置安保单元对应的合法敏数端;以及,所述用户寄存器子模块与芯片内的通用总线连接,以便芯片对所述寄存器组进行配置;
所述安保子模块的各安保单元用于根据对应所述寄存器组的配置数据,对所述仲裁子模块仲裁后的敏数源向敏数端传输敏感数据的传输过程进行分发保护。
优选地,分发保护包括:
当根据对应所述寄存器组的配置数据确定出目标敏数源被分发屏蔽时,所述安保子模块控制所述仲裁子模块,使所述仲裁子模块的缓存不被写入当前正在输入的敏感数据;
和/或,当根据对应所述寄存器组的配置数据确定出目标敏数源不需要分发屏蔽时,则所述安保子模块控制所述仲裁子模块,使所述仲裁子模块的缓存从敏数源输入敏感数据,并将所述仲裁子模块缓存的敏感数据通过所述敏感数据传输总线架构向敏数端广播式分发传输。
优选地,一趟分发操作的分发保护的触发满足以下条件:目标安保单元对应所述寄存器组中,安保控制寄存器中的安保使能比特位设置为1,安保分发屏蔽使能寄存器对应指定敏数源的比特位设置为1,以及指定敏数源在分发传输期间给出的敏数端存储空间地址落在目标安保单元的保护范围内。
优选地,所述安保控制寄存器还用于配置安保单元对应的合法敏数端包括:配置合法敏数端对应的保护使能、保护配置的更新锁护及保护存储空间范围,其中所述安保控制寄存器包括1比特位的保护使能,1比特位的保护配置更新锁护和多比特位的存储空间保护范围设置位域。
优选地,多比特位的存储空间保护范围设置位域包括:1比特位地址方式配置位、多比特位基础地址和多比特位额外地址;其中,当地址方式配置位设置为0时,则存储空间保护范围为自基础地址到额外地址的地址范围;当地址方式配置位设置为1时,则存储空间保护范围为让存储空间保护地址与额外地址的逻辑与结果和基础地址与额外地址的逻辑与结果相等的空间地址构成的地址范围。
优选地,所述安保子模块的各安保单元还用于根据对应所述寄存器组的配置数据,在一趟分发操作的整个传输过程期间进行实时校验的合法性监测,并输出故障信息。
优选地,实时校验的合法性监测包括以下任意一项或多项:
根据各安保单元的配置寄存器确定敏数源是否合法;
根据各安保单元的配置寄存器确定敏数端是否合法;
根据各安保单元的配置寄存器确定保护的使能是否被修改;
根据各安保单元的配置寄存器确定保护地址范围是否合法。
优选地,所述敏感数据传输控制逻辑电路还包括数据缓存子模块,其中所述数据缓存子模块用于提供敏感数据的缓存空间,以基于缓存空间实现预设粒度转换处理和/或优先级传输控制。
本说明书实施例还提供一种敏感数据传输***,包括:敏数源、如本申请中任意一项所述的敏感数据传输总线架构、如本申请中任意一项所述的敏感数据传输控制逻辑电路、芯片内的通用总线和敏数端;
其中,所述敏数源与所述敏感数据传输控制逻辑电路的输入端口连接,所述通用总线与所述敏感数据传输控制逻辑电路的用户寄存器子模块连接,所述敏感数据传输控制逻辑电路的安保子模块通过所述敏感数据传输总线架构与所述敏数端连接。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:
通过提供适合于在半导体芯片内部的一种简单总线架构,能够以较小的实施成本(譬如芯片的资源/功耗代价、性能消耗等)完成来自于众多片内敏数源的芯片敏感数据被安全地分发到片内指定敏收端,使得敏感数据片内传输具有良好的统一性、可扩展性、安全性等性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请中SDB专有总线和SDCTL控制器的电路框架示意图;
图2是本申请中用户寄存器SDCTL_UREG的组成示意图;
图3是本申请中单个DPU单元的PROP寄存器的位域定义示意图;
图4是本申请中单个DPU单元的CTRL寄存器的位域定义示意图;
图5是本申请中DPU单元针对一趟分发操作的屏蔽条件的示意图;
图6是本申请中针对DPU保护配置的实时校验的示意图;
图7是本申请中针对SDB_ADDR信号的实时校验的示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践。
常见的片内敏感数据及其数据载入过程示意可以如下:
CUID(Chipset Unique Identification,芯片唯一标识)数据:通常是在芯片出厂前被编程在诸如ROM/OTP/Flash(闪存)之类的NVM中(Non-Volatile Memory,非易失性存储器),而在芯片上完电开始工作后,通常又需要将CUID数据先从NVM中载出、再传输到对应的片内外设模块中以备使用(譬如被芯片的CPU内核读取,以作核对或参与函数处理);
Root-key(根密钥)数据:既可能以明文形式,也可能以密文形式,在芯片达到用户手上前被编程进类似的NVM中。其中,当以明文形式编程时,它的提供就类似于所述CUID数据;当以密文形式编程时,它的提供一般还涉及额外的片内解密处理过程。无论以明文或密文形式提供,不同于CUID数据的是,Root-key数据本身通常是需要保密的——其保密对象不仅有诸如CPU内核、DMA主机(Direct Memory Access,直接存储器存取控制器)这类的SOC(System On Chip,片上***)芯片之***总线架构中的Master(主设备),也包括其它不相关的片上外设模块等逻辑电路。换言之,需要保密的敏感数据应只能被允许的指定片内逻辑电路所访问使用;
动态式输入激励类的片内敏感数据:它们的生成、提供等一般不是一次性的,往往需要按照一定的需求反复地刷新产生。譬如基于某Root-key数据及片内的子密钥生成器外设模块、并以特定的时间间隔反复更新产生某片内密码处理引擎外设模块所需的工作密钥或算法参数。与Root-key数据不同的是,动态式输入激励类的片内敏感数据因需刷新、就得反复地多次传输到所允许的指定敏收端。
目前在半导体业界,SOC芯片中的***总线(譬如源自AMBA标准的AHB总线),若被用来实现片内敏感数据的分发操作,虽然可以满足对分发需求的统一性及可扩展性的考量,譬如某芯片在设计的中后期可能会突然新加若干的片内敏感数据的提供源和/或使用需求,但却无法满足甚至会直接违背安全分发的总体需求——因为一旦敏感数据能通过该***总线实现读/写访问,则极有可能因芯片软/硬件设计的客观缺陷或外部恶意施加的有效攻击而导致敏感数据的泄露和/或篡改。
而为了解决上述安全性方面的缺陷问题,现有做法是在敏感数据的生成端对其进行加密后,再将密文形式的敏感数据通过***总线分发传输,并在数据的接收端进行相应的解密处理后才能恢复使用。显而易见的是,这种解决方案在敏感数据的生成端和接收端分别添加了加密处理和解密处理,为了加解密处理本身的安全性,通常只能由专有的硬件逻辑电路(不能由CPU执行软件程序)来实现达成,则势必增加一系列的成本开销,比如更多的资源、更大的功耗、更多的性能损耗等。
另外,在某一敏数源和相应敏数端之间搭建端对端的直连传输通路,虽然在分发操作的安全性方面做到了较高保障,但在达成分发操作的统一性及可扩展性方面的可行性较差,而且对分发过程中数据传输通路上可能发生的客观故障或主动攻击等,也无法做到较低成本的监测实现,比如有多少条端对端的直连传输通路,就需要同等数量的监测逻辑电路才能完全覆盖。
还有,各种片内敏感数据在提供方式、使用方式、安全性保障等多方面,均具有不同需求,再加上各类半导体芯片所集成的片内敏感数据的实际类别、数量等同样具有的非统一性及不可预测性,现有方案已经不能满足要求。
有鉴于此,有必要提出一种能够满足各种片内敏感数据在分发操作上的安全性、统一性及可扩展性等需求,同时又具有相对较小实施成本的、在片内安全分发芯片敏感数据的简单总线及控制器电路架构。
基于此,本申请旨在提供适合于在半导体芯片内部、以较小的实施成本(譬如芯片的资源/功耗代价、性能消耗等)完成来自于众多片内敏数源的芯片敏感数据被安全地分发到片内指定敏数接收端(即敏数端)的一种总线结构及控制器电路架构。
如图1所示,本发明所实现的、用于完成将源于众多敏数源的芯片敏感数据安全地分发到片内指定敏收端的一种简单且专有的敏感数据传输总线架构,通过在总线中定义简单的协议接口,从而能够基于这些总线接口,在敏感数据传输的统一性、可扩展性、安全性等方面,实现良好性能的传输过程。
还有,基于该总线架构的传输协议,可以利用控制逻辑电路实现敏感数据的传输控制。
以及,基于该总线架构、逻辑控制电路,将敏数源、敏数端和芯片内部其他功能模块(比如通用总线)构成片内敏感数据传输***。
下面对总线、逻辑电路和***加以示例说明。
如图1示意,从分发传输的输入侧而言,定义了一套足够简单的专有SDL(SecureDistribute bus Lite,安全分发简化总线)的总线协议,其接口仅设置以下4类接口信号:
SDL_WREN(传输写使能信号接口):单bit,源于既定敏数源的单次分发传输的写使能信号;
SDL_ADDR(地址数据信号接口):位宽可编程的多bit,分发传输的敏数端存储空间的寻址信号;
SDL_WDAT(敏感数据信号接口):位宽可编程的多bit,单次分发传输的写数据信号;
SDL_WAIT(反馈等待信号接口):单bit,相应后级的接收逻辑电路未准备好接收当前正在分发的单次传输量数据的忙指示信号。
而从分发传输的输出侧而言,定义了一套足够简单的专有SDB(SecureDistribute Bus,安全分发总线)的总线协议,其接口仅设置4类接口信号:
SDB_WREN(传输写使能信号接口):多bit,针对多个敏数端的单次分发传输的写使能信号;
SDB_ADDR(地址数据信号接口):位宽可编程的多bit,包括分发传输的敏数端存储空间的寻址信号、敏数源的索引值信号、及前两段信号的基准校验值信号;
SDB_WDAT(敏感数据信号接口):位宽可编程的多bit,单次分发传输的写数据信号;
SDB_WAIT(反馈等待信号接口):单bit,相应后级的接收逻辑电路未准备好接收当前正在分发的单次传输量数据的忙指示信号。
因此,综合分发传输的输入侧和输出侧来看:
一方面,分发传输只有写使能、不存在读使能,故分发传输只能由前级向后级传输、而不能从后级向前级传输,这样就规避了敏感数据反向泄漏的可能性。
二方面,SDx_ADDR信号(x=L/B,可以适配简化版总线及非简化版总线)的位宽可编程,可便于从某SOC***的具体实际需求出发、灵活而可扩展地设置***内所有敏数端存储空间的总体映射边界。
三方面,SDx_WDAT信号(x=L/B)的位宽可编程,且一般不大于***内所有敏数源的单组敏感数据量的最小值,可便于针对***内单组敏感数据量可能各不相同的众多敏数源统一地开展分发传输处理。
一些实施方式中,所述地址数据信号接口传输的所述操作数据用于:所述目标敏数端在接收到所述传输写使能信号接口中自身对应的使能信号位有效时,根据接收到的所述操作数据中部分或全部数据进行检测后存储处理。
一些实施方式中,可以针对不同场景进行分开存储处理。
在一种示例中,对所述操作数据中n位长的所述寻址信号与对应自身存储区的地址位段进行检测,当发现所述寻址信号不属于本敏数端对应的寻址空间,则屏蔽接收所述敏感数据,并将自身的敏感数据存储区清空。
在一种示例中,对所述操作数据中i位长的索引编号与片内敏数源的索引值位段进行检测,当发现所述索引编号的敏数源不属于本敏数端合法对应的敏数源,则屏蔽接收所述敏感数据,并将自身的敏感数据存储区清空。
在一种示例中,对所述操作数据中v位长的第一基准校验值和第二基准校验值,与自身计算生成的实时校验值进行比对校验,当发现校验结果不一致时,则屏蔽接收所传敏感数据,并将自身的敏感数据存储区清空,其中所述实时校验值为敏数端根据实际接收到的所述寻址信号和所述索引编号而实时计算生成的校验值。
需要说明的是,可以将上述各示例进行组合,来满足实际场景的存储处理需要,这里不对组合方案作限定。
一些实施方式中,通过利用地址数据信号接口传输的所述寻址信号,可以实现分开存储。
例如,在所述分发操作的敏数源中,单个敏数源在一趟分发的整个传输过程中伴随提供位宽全长的且每次传输中依序变化的敏数端存储空间的寻址信号,以使目标敏数端基于所述传输写使能信号接口的有效位和所述依序变化的敏数端存储空间的寻址信号中的2位数据进行敏感数据的存储。
一些实施方式中,所述第一基准校验值和/或所述第二基准校验值为基于以下任意一种校验方式得到的校验值:奇偶校验、循环冗余码校验。
一些实施方式中,所述第一基准校验值和/或所述第二基准校验值在敏数源向所述敏感数据信号接口输入数据时生成。
一些实施方式中,其特征在于,所述敏感数据传输总线架构还包括监测接口,其中所述监测接口用于传输异常配置信号,以使目标敏数端基于所述异常配置信号进行置起和/或预定义的响应机制,并自行判断是接收还是屏蔽当前分发传输。
需要说明的是,上述对各个示例进行了简单示例说明,本领域的技术人员可以结合下述内容进行实施。
作为对敏感数据分发传输的片内中间安全控制者的角色而言,SDCTL模块以及形式上分布于各个敏数端中的相应逻辑电路,它们通过以下逻辑/机制达成了“各种片内敏感数据在分发操作中的安全性、统一性及可扩展性”的需求满足:
一方面,统一性要求:分发传输的输入侧和输出侧基于基本一致的SDB专有总线协议(输入侧的SDL总线可认为是SDB总线的简化版)。在所述输入侧,无论有多少敏数源,它们都统一地以SDL总线协议发起分发传输。在所述输出侧,以广播的方式将敏感数据分发出去。而在各个敏数端中,也是统一地以收到对应的有效分发传输写使能信号为前提,继而检测所收到传输的敏数端存储空间和敏数源索引编号是否为本敏数端所定义的合法值、以及实时监测所收到传输的敏数端存储空间和敏数源索引编号是否被篡改。
二方面,可扩展性要求:所谓合法或非法的分发传输通路,是以DPU单元的配置来具体定义的。如果SOC***中需要增加或减少有定义的分发传输通路,除了可能的增加或减少敏数源和/或敏数端本身外,更有可能是通过增减DPU单元的启用数量来实现。再者,如果分发传输通路需要增加很多,那么仅需增大DPU单元的相应配置寄存器就能很轻松地达到扩展实现。另外,SDB_WDAT信号的位宽可编程,可便于将本发明实施到具有不同分发传输粒度的SOC***中去。
三方面,安全性要求:(1)基于各个DPU单元在被***总线初始配置时的配置内容,在非配置的其余时候进行实时校验的故障监测;(2)基于位宽全长的敏数端存储空间寻址信号、敏数源索引编号值信号,在一趟分发操作的整个传输过程期间进行实时校验的故障监测。所述两类故障监测的目的都是较大提升“恶意注入故障攻击以图开启非法分发传输通路”的攻击实施难度。
对于实时校验进行检测,具体而言可以有以下示例方式:
示例1:故障监测逻辑电路相应包含:各个DPU单元的配置寄存器逻辑、这些配置寄存器在被***总线配置时的基准校验值计算生成和保存逻辑、这些配置寄存器在其余时侯的实时校验值计算生成和比较逻辑。
其中,DPU单元的PROP类寄存器集成了针对各个敏数源的分发屏蔽使能,这就确定了为一个DPU单元所设置的合法敏数源;
DPU单元的CTRL类寄存器集成了这个DPU单元的保护存储空间范围,这就确定了为一个DPU单元所设置的合法敏数端;(这里的两段相当于:对“非法分发传输通路”的配置定义,即就一个DPU单元而言,任何分发传输通路无论是发端或收端,只要任一端不合法,此分发传输通路就认定是非法的)。
DPU单元的CTRL类寄存器也集成了这个DPU单元的保护使能、保护配置更新锁护,这可确保所述保护的使能及相应配置不被无意或恶意地修改。
示例2:故障监测逻辑电路相应包含:位宽全长的敏数端存储空间寻址信号、及敏数源索引编号值信号的基准校验值计算生成和保存逻辑;上述两类信号在一趟分发操作的整个传输过程期间,在敏数端进行实时校验值的计算生成和比较逻辑,以此实现实时故障监测处理。
上述针对敏数端存储空间寻址信号及敏数源索引编号值信号的相应校验逻辑,可对任何分发传输通路在通过定义合法性的检测后、于一趟分发操作的实际多次传输过程中持续地监测目标分发传输通路是否被篡改,以避免将某敏数源的敏感数据全部或部分地分发至不期待的敏数端(或者是针对某敏数端从不期待的敏数源处获得全部或部分的敏感数据)。
控制器逻辑电路:可以全局管控的管家身份、统一地来管理控制从某一敏数源到所允许指定敏数端的片内敏感数据的安全分发。虽然控制逻辑电路本身作为芯片(比如SOC***架构)中的片上外设模块之一,但基于其内部安全机制/策略的集成、已使得诸如CPU内核/DMA主机之类的SOC***主设备对所述分发操作只具有间接的预设式控制权(譬如:针对哪个(些)敏数源、针对哪个(些)敏数端,这些配置一旦设好,可以在当前复位周期内做到无法更改)、而没有对所分发数据本身的读/写访问权。
另外,基于专有的传输总线协议,即仅定义了4类接口信号的SDB总线(SecureDistribute Bus,安全分发总线),就能够以促进各种片内敏感数据的分发操作的统一性及可扩展性的达成实现。
参考前述示例,这4类接口信号可以如下示意:
·SDB_WREN,对应一组敏感数据分发操作(或称一趟分发)的单次传输(单次传输的数据量称为“分发传输的粒度”)的传输写使能信号(位宽为R,独热式有效——即同时最多仅一位有效;R表示当前***内所集成的敏数端的数量);
·SDB_ADDR,对应分发操作之敏数源的索引编号、敏数端存储空间的寻址信号、以及这两小段信号的基准校验值(位宽为n+i+v:n,片内敏感数据接收端存储空间的寻址信号的位宽;i,片内敏感数据提供源的索引编号值的位宽;v,SDB_ADDR前两个位段的基准校验值的位宽);
·SDB_WDAT,对应所述单次传输的敏感数据信号(位宽为w,也即“分发传输的粒度”为w位);
·SDB_WAIT,对应所述单次传输的反馈指示/等待信号。当其有效时,当前一个粒度的单次传输不被执行,只有等到该信号无效时才被实际执行。
进一步,SDB专有总线协议除了上述的接口信号外,可选地还可以集成其它的接口信号,譬如:
·SDB_VERR,对应当前分发通路所关联DPU(Distribute Protection Unit,分发保护单元;详见下文)之相关配置出现实时校验故障的异常指示信号。目标敏数端可基于此信号的置起和预定义的响应机制、自行判断是接收还是屏蔽针对它的分发传输。
另外,针对分发操作输入侧的单个敏数源,它的分发传输专有总线可认为是简化版的SDB总线,或称SDL总线。
其中,SDL总线与SDB总线之间的主要区别包括:
SDL_WREN是单bit的分发传输写使能信号,因为它对应的是既定的单个敏数源;
SDL_ADDR只包含分发操作之敏数端存储空间的寻址信号(位宽也是n)。
实施中,控制器逻辑电路(下文称为SDCTL模块)的具体构成包括但不限于以下实现组件:
对应SOC***通用总线的输入/输出端口:完成对SDCTL模块内相应用户寄存器(SDCTL_UREG)的***总线访问(包括读和写)。
可选地,若芯片有需要集成来自诸如CPU内核、DMA主机等***主设备的敏数源(通俗来说,可简称为软件源),此端口也负责完成这种敏数源的数据输入(这里通过***总线输入的写‘粒度’可以不同于所述的分发传输粒度)。来源于这种敏数源的敏感数据先被缓存于同样可选的SDCTL_DBUF缓存子模块中,然后再在SDCTL_DPU安保子模块的管控下以既定的分发传输粒度、通过SDB总线广播式分发传输到指定的敏数端;
SDCTL_UREG用户寄存器子模块:集成了SDCTL模块相关的用户寄存器,即SOC***对所述控制器逻辑电路“间接的预设式控制权”的具体实现。
在一些示例中,参考图2至图4示意,用户寄存器包括但不限于:
若干组的SDCTL_DPU_PROP和SDCTL_DPU_CTRL寄存器(一组寄存器对应一个DPU分发保护单元,故总的组数即为片内所实际集成的DPU单元数),前者用于控制单个DPU单元针对各个敏数源的分发屏蔽使能,后者用于控制单个DPU单元的保护使能、保护配置更新锁护、及保护的存储空间范围。
一个SDCTL_CR寄存器:提供SDCTL模块一些较普通的控制配置。譬如对监测到的DPU配置实时校验故障是否要向CPU内核上报中断和/或是否要向SOC***提请复位的使能信号,以及可选的软件式敏数源的分发目标敏数端存储空间地址。
一个SDCTL_SR寄存器:提供SDCTL模块一些通用的状态指示。譬如对所集成的DPU单元的工作状态指示,其任意一位的有效就表示“对应DPU单元针对某趟分发操作的屏蔽条件已满足”,也即认为相应DPU单元发生了保护行为。
SDCTL_DBUF缓存子模块:可以为可选的实现组件。极限情况下,此缓存可以只提供一组敏感数据的缓存空间。
其中,缓存的功能特性至少包括两大项:
原子性保证:敏数源的数据提供必须按指定粒度来实施、也须按指定顺序且遍历地提供完整的一组敏感数据、以及其它可能的额外保证策略;
粒度转换处理:可接受与“SDB分发传输粒度”相异的源数据提供粒度,最终将一组敏感数据在输出侧以统一的传输粒度分发到指定的敏数端。
对应众多片内敏数源的多组输入端口,以及SDCTL_ARBIT仲裁子模块:它们主要完成对片内不同敏数源的输入仲裁和数据缓存。
其中,输入端口和仲裁的功能特性至少包括两大项:
进一步原子性保证(简称原子性保证+):包括如前文所述的“原子性保证”特性、以及对当前一组敏感数据在全部接收后才会响应新一组输入数据(通常来自于另一个输入端口)接收的保证;
优先级控制:在多个片内敏数源可能同时触发分发操作的场景下,基于一定的优先级设置和仲裁算法对复数个敏数源进行多选一地优先响应处理。
SDCTL_DPU安保子模块:如前文已述,主要基于预设好的DPU配置(参见SDCTL_DPU_PROP和SDCTL_DPU_CTRL寄存器)、对可能经仲裁出的某个敏数源实施保护操作(也即分发屏蔽)。
其中,分发屏蔽示意如下:
当所述保护操作(分发屏蔽)有效实施时,对分发传输的输入数据通常就不进行采集缓存了(即集成于SDCTL_ARBIT子模块中的缓存不被写入当前正在输入的敏感数据,且同时会反馈给回无效的SDI_WAIT信号);
如果分发屏蔽未被触发实施,则从敏数源输入、并被缓存的敏感数据将通过输出侧的SDB总线广播出去,从而向指定的敏数端传输过去。
参考图5示意,针对一趟分发操作的分发屏蔽,其触发实施须以下述情况的满足为条件:
1)某个DPU单元(下称目标DPU)的防护使能已激活,即此DPU单元对应用户寄存器SDCTL_DPU_CTRL的安保使能比特位prot_en已设为1,即SDCTL_DPU_CTRL.prot_en设为1;
2)目标DPU单元的SDCTL_DPU_PROP寄存器对应指定敏数源的那一位已设为1。需要说明的是,本发明实施例中假定***中一共存在T个非软件式的敏数源,另外硬件逻辑天然是知晓任一敏数源的索引编号值的,即此只要SDCTL_DPU_PROP寄存器中指定敏数源的对应比特位设置为1,则DPU单元针对指定敏数源的分发屏蔽已激活;
3)指定敏数源在分发传输期间给出的SDL_ADDR地址(即分发目的地的存储空间地址),它是落在目标DPU单元的保护范围内的(参见SDCTL_DPU_CTRL寄存器的addr_mask、bse_addr、ext_addr位域)。
实施中,不同的多个目标DPU单元可以与单个指定敏数源相映射、且配置它们各自的分发保护范围。此时它们的分发屏蔽当然各自实施,对应的DPU单元保护状态相应可能被置起(参见SDCTL_SR寄存器)。
对应各个片内敏数端的一组输出端口:对应即前文所述的SDB专有总线协议的物理接口实现。
实施中,在前文对SDB_WREN、SDB_ADDR接口信号的位宽描述中,其分别是R、(n+i+v)个bits的位宽。这是一种从功能角度来看的冗余安排。需要说明的是,针对某一既定敏数端而言,它接收分发传输数据的必要条件是(这里暂不论WAIT机制):所收到的对应单bit之SDB_WREN信号有效、同时所收到的多bit之SDB_ADDR信号的某个位段足够让指定敏数端区分出一趟分发操作所对应的多次传输应如何分开存储,而且有利于在分发传输过程中的故障监测。如图6-7示意,发端索引值、收端寻址值,在一趟分发的多次传输中,可能仅有极少量会更新,则对于不更新的部分,多次进行校验值比较,以此更有利于故障监测的效果提升。
监测的原理简述如下:
在分发操作的输入侧:单个敏数源在一趟分发的整个传输过程中会伴随提供位宽全长的(即n位)、每次传输依序变化的敏数端存储空间寻址信号。譬如:从敏数源A向敏数端B分发128位的敏感数据,且单次分发传输仅涉及32位;又假设n=16;则敏数源A分四次向敏数端B的传输地址(假设)依次是1230H、1231H、1232H、1233H;而***给敏数端B所定义的接收存储区也只有128位这么大的空间(即它只需要这么多的敏感数据)。因此,站在敏数端B的角度来看,它只要收到相应的有效SDB_WREN信号、以及仅仅2位(而不是全长的n位)的地址信号就足够它安排四个32位数据的分开存储了)。因此,若只需k位的地址信号就能够安排对应粒度的数据分开存储,则仅需接收依次变化k位的地址信号来安排存储,因而k可以用于表示按预设存储粒度存储敏感数据时的分开存储次数,通常k不大于全长n,比如示例中128位数据按32位宽粒度存储时,则只需要2位的地址信号来完成4个粒度数据的分开存储,而无需全部位长(即n=16位)。另外,这个全长的接收端存储寻址信号既会用于判断其是否落在目标DPU单元的保护范围内、也会用于产生相应的寻址基准校验值,后者和原样的全长寻址信号一起在SDB总线上广播式分发出去;
在分发操作的输出侧:某个敏数端在检测到自身相应的单bit之SDB_WREN信号有效的前提下、就会展开对所收到SDB_ADDR地址信号的检测分析和校验。
其中,检测和校验包括但不限于:
1)对所收到SDB_ADDR信号中n位长的、对应自身存储区的地址位段进行检测,判断其是否为“***为本敏数端所合法定义的寻址空间”;如果发现所述地址位段不属于本敏数端的合法寻址空间,则本敏数端应屏蔽所传敏感数据的接收、并将它的敏感数据存储区清空;
2)对所收到SDB_ADDR信号中i位长的、对应片内敏数源的索引值位段进行检测,判断其是否为“***为本敏数端所合法定义的敏数源”;如果发现所述敏数源索引值不属于为本敏数端所定义的合法来源,则本敏数端应屏蔽所传敏感数据的接收、并将它的敏感数据存储区清空;
3)对所收到SDB_ADDR信号中v位长的、对应另两个子位段的基准校验值进行比对校验,即对比“所收到的基准校验值”和“对所收到另两个子位段的实时计算校验值”,如果发现这两个值不一致,则本敏数端应屏蔽所传敏感数据的接收、并将它的敏感数据存储区清空。
本发明中上述两个校验值的计算源对象都是位宽全长的(一个n位、一个i位)子位段信号,相比于经去冗余处理后、位宽较少的子位段信号而言,其在密码学中的攻击抵御性能更有提升;
另外,恶意攻击者要想在实时校验这一方面实施旁路攻击的话,就得在一趟分发操作的整个传输过程中同时驱使所述两个校验值总是相等,基于当今的故障注入攻击技术这无疑是难度极大的。
参考图1示意,在监测到一些异常后、向SOC***给出的相应输出指示信号,包括但不限于:
SDCTL_INTREQ:当监测到“DPU配置出现实时校验故障”之异常时向CPU内核发出的中断请求信号;
SDCTL_RSTREQ:当监测到“DPU配置出现实时校验故障”之异常时向SOC***发出的复位请求信号;
SDCTL_DPUSTA:各个DPU保护单元是否触发了保护操作的状态指示信号;
SDCTL_DPUVERR:各个DPU保护单元是否监测到“DPU配置出现实时校验故障”之异常的状态指示信号。其中,一般认为DPU配置的实时校验故障不会直接导致目标的分发屏蔽,而是应通过向CPU内核发出中断、或向SOC提请复位的手段来尝试驱使DPU配置恢复正常;
实施中,对SDB_ADDR之另两个位段的具体校验机制包括但不限于:奇偶校验、循环冗余码校验。相应的基准校验值由SDCTL模块的硬件逻辑、在有效缓存敏数源的输入数据时产生;而实时计算校验值则由目标敏数端的硬件逻辑、在分发接收的多次传输期间实时产生。
对DPU配置进行实时校验的具体校验机制包括但不限于:奇偶校验、循环冗余码校验。相应的基准校验值由SDCTL_UREG子模块的硬件逻辑、在通过***总线有效配置DPU单元的配置寄存器时产生;而实时计算校验值也由SDCTL_UREG子模块的硬件逻辑、在非***总线配置期间反复持续地产生。一旦发现总线配置时产生的基准校验值与其余时候反复产生的实时计算校验值不一致,就认为发生了实时校验故障(通常原因是恶意攻击者对所述寄存器成功施展了侵入式篡改攻击)。
下面再以一些示例,作示意性说明如下:
如图1所示,本发明的一个实施例的SDB专有总线和SDCTL控制器的电路框架示意图。其组成部件包括:SOC***通用总线1、敏感数据提供源21~23、SDCTL控制器模块3、SDB专有分发总线4、敏感数据接收端51~53、其它杂项指示信号组6等。
在半导体SOC芯片的业界,***总线架构中通常包括总线主设备和总线从设备这两大类的芯片内部组件。所述主设备担当全局管控者的角色,常见实例有各大CPU厂商的CPU处理器,譬如ARM这家的Cortex-M3核。所述从设备围绕在主设备周围、担当***功能设备(下文简称为外设)的角色,常见实例有各种通信协议控制器(譬如I2C/SPI/UART/USB)、各种片内存储模块(譬如SRAM/OTP/eFlash)、各种密码处理硬件引擎(譬如AES/RSA/SM3)。本发明所描述的SOC***通用总线1这一组件,就是在***总线架构中将若干总线主设备和总线从设备连接到一起的片内组件。
SOC***通用总线1的主侧连接总线主设备,譬如可连接CPU内核(一个CPU处理器可由1或多个结构相同的CPU内核组成)或者DMA主机。SOC***通用总线1的从侧,在本发明中,则连接SDCTL控制器模块3。如此的***连接架构,为所述任何***主设备对SDCTL控制器模块3的读写访问提供了可行性和高效率(这里不对原理展开说明)。
如图1中的SDCTL_UREG子模块30所示,它是SDCTL控制器模块3的子组件之一,主要集成实现了SDCTL控制器模块3这一外设所需的用户寄存器的逻辑电路。
如图2所示,这些用户寄存器包括但不限于:
若干组的SDCTL_DPU_PROP寄存器300和SDCTL_DPU_CTRL寄存器301,其中一组PROP+CTRL寄存器对应一个DPU单元,故总的组数即为所集成的DPU单元数,如图2所示的N。
SDCTL_DPU_PROP寄存器300:用于控制单个DPU单元针对各个敏数源的分发屏蔽使能。
如图3至图4所示,SDCTL_DPU_PROP寄存器300的[T:1]位段(位域)就对应目标DPU单元针对共T个的敏数源各自的分发屏蔽使能。稍特别地,SDCTL_DPU_PROP寄存器300的[0]位域或被定义为保留域、或被定义为0号敏数源(即所述可选的软件式敏数源)的分发屏蔽使能。
SDCTL_DPU_CTRL寄存器301:用于控制单个DPU单元的保护使能、保护配置更新锁护、及保护的存储空间范围。如图3至图4所示的本发明实施例中,SOC***通用总线的位宽被假定为32位,故所述用户寄存器的尺寸通常就是32位。如果本发明所述的敏数端存储空间的寻址信号的位宽“n”不大于14,则可将相关的所有SDCTL_DPU_CTRL寄存器位域都安排在一个标准尺寸(比如32位)的用户寄存器中。
位宽为32的示例如图4所示:
SDCTL_DPU_CTRL[31]位域定义为本DPU单元的保护配置更新锁护,命名为prot_lock。当其被配置为有效值后,本DPU单元对应的一组PROP+CTRL寄存器都不再能配置更新;
SDCTL_DPU_CTRL[30]位域定义为本DPU单元的保护使能,命名为prot_en。当其被配置为有效值后,才认为本DPU单元的保护操作已被激活(它是一趟分发操作的屏蔽条件之一);
SDCTL_DPU_CTRL[29]/[2n-1:n]/[n-1:0]这三个位段分布命名为addr_mask/ext_addr/bse_addr,它们综合起来、被定义为本DPU单元的存储空间保护范围设置位域。
具体来说:
当addr_mask被配置为0时,所述保护范围是SDL_ADDR∈[bas_addr,(bas_addr+ext_addr)],称之为偏移式设置;
当addr_mask被配置为1时,所述保护范围是
{(bas_addr&ext_addr)==(SDL_ADDR&ext_addr)},称之为掩码式设置;
举例来说:若假设n=12、SDL_ADDR=423H、bas_addr=1A0H,当add_mask=0、ext_addr=024H时,保护范围是SDL_ADDR∈[1A0H,1C4H];而当add_mask=1,ext_addr=FC0H时,保护范围是SDL_ADDR∈[180H,1BFH]。
SDCTL_CR寄存器302:提供SDCTL模块一些较普通的控制配置。譬如对监测到的DPU配置实时校验故障是否要向CPU内核上报中断和/或是否要向SOC***提请复位的使能信号,以及(可选的)软件式敏数源的分发目标敏数端存储空间地址。
SDCTL_SR寄存器303:提供SDCTL模块一些通用的状态指示。譬如对所集成的DPU单元的工作状态指示,其任何一位的有效就表示“对应DPU单元针对某趟分发操作的屏蔽条件已满足”,也即认为相应DPU单元发生了保护行为。
如图1中的SDCTL_DBUF数据缓存子模块31所示,它是SDCTL控制器模块3可选的子组件之一,主要集成实现了对来源于SOC***通用总线1的敏感数据的缓存及有关控制的逻辑电路。极限情况下,这里的缓存可以只提供一组敏感数据的缓存空间。
有关的控制至少包括两大项:
原子性保证:敏数源的数据提供必须按指定粒度来实施、也须按指定顺序且遍历地提供完整的一组敏感数据、以及其它可能的额外保证策略。
举例来说,假设所述敏数源的一组敏感数据的容量是192位、SOC***通用总线1的写粒度最大是32位,则至少需要六次***总线的写访问才能完成输入侧的数据分发传输。
其中,“敏数源的数据提供必须按指定粒度来实施”是指所述***总线的写访问必须以32位为粒度,其它粒度的写访问都不应被接受;
“也须按指定顺序且遍历地提供完整的一组敏感数据”是指六次***总线的写访问必须严格匹配6个依序变化的粒度地址(从最低地址开始每次递增1个粒度、或从最高地址开始每次递减1个粒度);
“其它可能的额外保证策略”主要指要求敏数源的正常分发传输行为被监测到异常后、所触发的一些安全保证行为。
安全保证行为,其包括但不限于:
在一组敏感数据的奇数序粒度的分发传输写访问时,也将对应缓存的相邻偶数序缓存空间清空。拿此处举例来说,就是在缓存第1/第3/第5个粒度的数据的同时(此时第2/第4/第6个粒度的缓存空间一般是老内容)也将第2/第4/第6个粒度的缓存空间清空;
粒度转换处理:可接受与“SDB分发传输粒度”相异的源数据提供粒度,最终将一组敏感数据在输出侧以统一的传输粒度分发到指定的敏数端。举例来说,假设所述敏数源的一组敏感数据的容量是192位、SOC***通用总线1的写粒度是32位,而输出侧SDB总线的分发传输粒度是48位,那么就可由这里的粒度转换处理完成32→48位的转换。
如图1中的SDCTL_ARBIT仲裁子模块32所示,它是SDCTL控制器模块3的子组件之一,主要集成实现了对片内不同敏数源的输入仲裁和数据缓存的逻辑电路。
SDCTL_ARBIT仲裁子模块32功能特性至少包括两大项:
原子性保证+:如前文所述的“原子性保证”特性、以及对当前一组敏感数据在全部接收后才会响应新一组输入数据(通常来自于另一个输入端口)接收的保证;
优先级控制:在多个片内敏数源可能同时触发分发操作的场景下,基于一定的优先级设置和仲裁算法对复数个敏数源进行多选一地优先响应处理。
如图1中的SDCTL_DPU安保子模块33所示,它是SDCTL控制器模块3的子组件之一,主要集成实现了基于DPU保护配置、对仲裁出的某趟分发操作实施屏蔽保护的逻辑电路。
如图5所示,目标DPU单元针对一趟分发操作的屏蔽条件是以下三个情况的同时满足:
指定DPU的保护使能已激活,即对应SDCTL_DPU_CTRL寄存器的prot_en位域被配置为1;
指定敏感数据源的分发屏蔽已激活,即对应SDCTL_DPU_PROP寄存器中、匹配于指定敏数源的那一位(下文简称为prop[i])被配置为1;
这组分发传输的目标地址处于指定DPU的保护范围内。
如图1所示,从SDCTL_UREG子模块30输出传给SDCTL_DPU安保子模块33的电路信号,主要包括对应上一节所述的prot_en和prop[i]位域的寄存值;若可选的SDCTL_DBUF数据缓存子模块31有集成实现,则还包括源于SDCTL_CR寄存器的软件式敏数源的分发目标敏数端存储空间地址的寄存值。
如图1所示,从SDCTL_DBUF数据缓存子模块31输出传给SDCTL_DPU安保子模块33的电路信号,主要包括如前文所述的源于软件式敏数源的、可能经粒度转换处理过的SDL专有总线接口信号。
如图1所示,从SDCTL_ARBIT仲裁子模块32输出传给SDCTL_DPU安保子模块33的电路信号,主要包括如前文所述的源于非软件式敏数源的、可能经优先级仲裁处理过的SDL专有总线接口信号。
如图1中的SDB专有分发总线4所示,它是本发明的组件之一,主要集成实现了从SDCTL控制器模块3到敏感数据接收端51/52/53的敏感数据分发传输的逻辑电路。
对应的SDB专有分发总线所包含的4类接口信号参见前述示例,不再展开。
如图1中的其它杂项指示信号组6,可选为本发明的组件之一,主要集成实现了监测到异常后向SOC***给出指示信号的逻辑电路。所涉及的输出指示信号参考前述示例,不再展开说明。
如图6所示,是针对DPU保护配置的实时校验的示意图。相应的基准校验值由SDCTL_UREG子模块的硬件逻辑、在通过***总线有效配置DPU单元的保护配置寄存器时产生;而实时计算校验值也由SDCTL_UREG子模块的硬件逻辑、在非***总线配置期间反复持续地产生。一旦发现总线配置时产生的基准校验值与其余时候反复产生的实时计算校验值不一致,就认为发生了实时校验故障(注:通常原因是恶意攻击者对所述寄存器成功施展了侵入式篡改攻击)。
如图7所示,是针对SDB_ADDR信号的实时校验的示意图。相应的基准校验值由SDCTL模块的硬件逻辑、在有效缓存敏数源的输入数据时产生;而实时计算校验值则由目标敏数端的硬件逻辑、在分发接收的多次传输期间实时产生。
基于相同发明构思,本申请还提供一种敏感数据传输***。
参考图1示意,一种敏感数据传输***包括:若干敏数源(比如图1示意的敏数源21~23),如前述任意一项示例所述的敏感数据传输总线架构(比如图1示意的SDB专有分发总线4),如前述任意一项示例所述的敏感数据传输控制逻辑电路(比如图1示意的SDCTL控制器模块3),芯片内的通用总线(即图1示意的SOC***通用总线1),以及若干敏数端(比如图1示意的敏数源51~23)。
其中,所述敏数源与所述敏感数据传输控制逻辑电路的输入端口连接,所述通用总线与所述敏感数据传输控制逻辑电路的用户寄存器子模块连接,所述敏感数据传输控制逻辑电路的安保子模块通过所述敏感数据传输总线架构与所述敏数端连接。
需要说明的是,***中的各个模块可以参考前述各个示例,不再展开说明。
本说明书中,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的实施例而言,描述比较简单,相关之处参见前述实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种敏感数据传输总线架构,其特征在于,应用于芯片内的敏数源和敏数端之间的敏感数据传输,所述敏感数据传输总线架构包括:
传输写使能信号接口,其中所述传输写使能信号接口用于传输一组敏感数据的一趟分发操作的使能信号,所述传输写使能信号的位宽为R且为独热式有效,R表示敏数端的数量,敏数端为敏感数据的接收端;
地址数据信号接口,其中所述地址数据信号接口用于传输所述分发操作对应的操作数据,所述操作数据包括所述敏感数据对应的敏数源的索引编号、敏数端存储空间的寻址信号、以及所述索引编号的第一基准校验值和所述寻址信号的第二基准校验值,所述地址数据信号接口的位宽为n+i+v,其中n为所述寻址信号的位宽;i为所述索引编号的位宽;v为所述第一基准校验值和所述第二基准校验值的位宽;
敏感数据信号接口,其中所述敏感数据信号接口用于传输所述分发操作对应预设位宽的敏感数据;
反馈等待信号接口,其中所述反馈等待信号接口用于敏数端在未准备好接收所述分发操作对应传输敏感数据时设置忙反馈信号,当所述忙反馈信号有效时,当前粒度的单次传输不被执行,待等到所述忙反馈信号无效时所述单次传输再被执行。
2.根据权利要求1所述的敏感数据传输总线架构,其特征在于,所述地址数据信号接口的位宽为可编程位宽;和/或,所述敏感数据信号接口的位宽为可编程位宽。
3.根据权利要求2所述的敏感数据传输总线架构,其特征在于,所述敏感数据信号接口的位宽不大于所有敏数源的单组敏感数据量的最小值,以便于对单组敏感数据量各不相同的多个敏数源统一地开展分发传输。
4.根据权利要求1所述的敏感数据传输总线架构,其特征在于,所述地址数据信号接口传输的所述操作数据用于:所述目标敏数端在接收到所述传输写使能信号接口中自身对应的使能信号位有效时,根据接收到的所述操作数据中部分或全部数据进行检测后存储处理。
5.根据权利要求4所述的敏感数据传输总线架构,其特征在于,根据接收到的所述操作数据中部分或全部数据进行检测后存储处理,包括:
对所述操作数据中n位长的所述寻址信号与对应自身存储区的地址位段进行检测,当发现所述寻址信号不属于本敏数端对应的寻址空间,则屏蔽接收所述敏感数据,并将自身的敏感数据存储区清空;
和/或,对所述操作数据中i位长的索引编号与片内敏数源的索引值位段进行检测,当发现所述索引编号的敏数源不属于本敏数端合法对应的敏数源,则屏蔽接收所述敏感数据,并将自身的敏感数据存储区清空;
和/或,对所述操作数据中v位长的第一基准校验值和第二基准校验值,与自身计算生成的实时校验值进行比对校验,当发现校验结果不一致时,则屏蔽接收所传敏感数据,并将自身的敏感数据存储区清空,其中所述实时校验值为敏数端根据实际接收到的所述寻址信号和所述索引编号而实时计算生成的校验值。
6.根据权利要求4所述的敏感数据传输总线架构,其特征在于,所述地址数据信号接口传输的所述寻址信号还用于:在所述分发操作的敏数源中,单个敏数源在一趟分发的整个传输过程中伴随提供位宽全长的且每次传输中依序变化的敏数端存储空间的寻址信号,以使目标敏数端基于所述传输写使能信号接口的有效位和所述依序变化的敏数端存储空间的寻址信号中的k位数据进行敏感数据的存储,k用于表示按预设存储粒度存储敏感数据时的分开存储次数,且k不大于n。
7.根据权利要求1所述的敏感数据传输总线架构,其特征在于,所述第一基准校验值和/或所述第二基准校验值为基于以下任意一种校验方式得到的校验值:奇偶校验、循环冗余码校验。
8.根据权利要求7所述的敏感数据传输总线架构,其特征在于,所述第一基准校验值和/或所述第二基准校验值在敏数源向所述敏感数据信号接口输入数据时生成。
9.根据权利要求1-8中任意一项所述的敏感数据传输总线架构,其特征在于,所述敏感数据传输总线架构还包括监测接口,其中所述监测接口用于生成异常指示信号,以使目标敏数端能基于所述异常指示信号的置起与否及预定义的响应机制自行判断是接收还是屏蔽当前分发传输。
10.一种敏感数据传输控制逻辑电路,其特征在于,设置于芯片内,且位于芯片内的敏数源与如权利要求1-9中任意一项所述的敏感数据传输总线架构之间,所述敏感数据传输控制逻辑电路包括:用户寄存器子模块、安保子模块、仲裁子模块和与所述敏数源对应的输入端口;
所述输入端口用于连接敏数源;
所述仲裁子模块用于对多个所述输入端口的敏数源进行仲裁;
所述配置寄存器包括至少一对寄存器组,每对寄存器组包括安保分发屏蔽使能寄存器和安保控制寄存器,所述安保分发屏蔽使能寄存器用于配置该安保单元对应的合法敏数源,所述安保控制寄存器用于配置安保单元对应的合法敏数端;以及,所述用户寄存器子模块与芯片内的通用总线连接,以便芯片对所述寄存器组进行配置;
所述安保子模块的各安保单元用于根据对应所述寄存器组的配置数据,对所述仲裁子模块仲裁后的敏数源向敏数端传输敏感数据的传输过程进行分发保护。
11.根据权利要求10所述的敏感数据传输控制逻辑电路,其特征在于,分发保护包括:
当根据对应所述寄存器组的配置数据确定出目标敏数源被分发屏蔽时,所述安保子模块控制所述仲裁子模块,使所述仲裁子模块的缓存不被写入当前正在输入的敏感数据;
和/或,当根据对应所述寄存器组的配置数据确定出目标敏数源不需要分发屏蔽时,则所述安保子模块控制所述仲裁子模块,使所述仲裁子模块的缓存从敏数源输入敏感数据,并将所述仲裁子模块缓存的敏感数据通过所述敏感数据传输总线架构向敏数端广播式分发传输。
12.根据权利要求10所述的敏感数据传输控制逻辑电路,其特征在于,一趟分发操作的分发保护的触发满足以下条件:目标安保单元对应所述寄存器组中,安保控制寄存器中的安保使能比特位设置为1,安保分发屏蔽使能寄存器对应指定敏数源的比特位设置为1,以及指定敏数源在分发传输期间给出的敏数端存储空间地址落在目标安保单元的保护范围内。
13.根据权利要求10所述的敏感数据传输控制逻辑电路,其特征在于,所述安保控制寄存器还用于配置安保单元对应的合法敏数端包括:配置合法敏数端对应的保护使能、保护配置的更新锁护及保护存储空间范围,其中所述安保控制寄存器包括1比特位的保护使能,1比特位的保护配置更新锁护和多比特位的存储空间保护范围设置位域。
14.根据权利要求13所述的敏感数据传输控制逻辑电路,其特征在于,多比特位的存储空间保护范围设置位域包括:1比特位地址方式配置位、多比特位基础地址和多比特位额外地址;其中,当地址方式配置位设置为0时,则存储空间保护范围为自基础地址到额外地址的地址范围;当地址方式配置位设置为1时,则存储空间保护范围为让存储空间保护地址与额外地址的逻辑与结果和基础地址与额外地址的逻辑与结果相等的空间地址构成的地址范围。
15.根据权利要求10所述的敏感数据传输控制逻辑电路,其特征在于,所述安保子模块的各安保单元还用于根据对应所述寄存器组的配置数据,在一趟分发操作的整个传输过程期间进行实时校验的合法性监测,并输出故障信息。
16.根据权利要求15所述的敏感数据传输控制逻辑电路,其特征在于,实时校验的合法性监测包括以下任意一项或多项:
根据各安保单元的配置寄存器确定敏数源是否合法;
根据各安保单元的配置寄存器确定敏数端是否合法;
根据各安保单元的配置寄存器确定保护的使能是否被修改;
根据各安保单元的配置寄存器确定保护地址范围是否合法。
17.根据权利要求10-16中任意一项所述的敏感数据传输控制逻辑电路,其特征在于,所述敏感数据传输控制逻辑电路还包括数据缓存子模块,其中所述数据缓存子模块用于提供敏感数据的缓存空间,以基于缓存空间实现预设粒度转换处理和/或优先级传输控制。
18.一种敏感数据传输***,其特征在于,包括:
敏数源;
如权利要求1-9中任意一项所述的敏感数据传输总线架构;
如权利要求10-17中任意一项所述的敏感数据传输控制逻辑电路;
芯片内的通用总线;
敏数端;
其中,所述敏数源与所述敏感数据传输控制逻辑电路的输入端口连接,所述通用总线与所述敏感数据传输控制逻辑电路的用户寄存器子模块连接,所述敏感数据传输控制逻辑电路的安保子模块通过所述敏感数据传输总线架构与所述敏数端连接。
CN202311719310.4A 2023-12-13 2023-12-13 一种敏感数据传输总线架构、控制逻辑电路及传输*** Active CN117633920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311719310.4A CN117633920B (zh) 2023-12-13 2023-12-13 一种敏感数据传输总线架构、控制逻辑电路及传输***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311719310.4A CN117633920B (zh) 2023-12-13 2023-12-13 一种敏感数据传输总线架构、控制逻辑电路及传输***

Publications (2)

Publication Number Publication Date
CN117633920A true CN117633920A (zh) 2024-03-01
CN117633920B CN117633920B (zh) 2024-06-18

Family

ID=90016291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311719310.4A Active CN117633920B (zh) 2023-12-13 2023-12-13 一种敏感数据传输总线架构、控制逻辑电路及传输***

Country Status (1)

Country Link
CN (1) CN117633920B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591824A (zh) * 2011-12-27 2012-07-18 深圳国微技术有限公司 Soc芯片***中控制保密数据搬运的dma控制器
CN103034599A (zh) * 2012-12-12 2013-04-10 深圳国微技术有限公司 安全dma控制器、soc***及其数据搬运方法
CN105320894A (zh) * 2014-08-01 2016-02-10 国家电网公司 一种保护传输数据和存储数据的方法及装置
CN106383790A (zh) * 2016-08-26 2017-02-08 北京智芯微电子科技有限公司 一种总线管理单元及高安全***级芯片
CN109460665A (zh) * 2018-10-25 2019-03-12 石生花微电子(南京)有限公司 一种用于保护芯片中敏感信息的装置及方法
CN111159097A (zh) * 2019-12-09 2020-05-15 中山大学 一种片上访存保护***及方法
CN111444528A (zh) * 2020-03-31 2020-07-24 海信视像科技股份有限公司 数据安全保护方法、装置及存储介质
CN111699467A (zh) * 2018-12-26 2020-09-22 华为技术有限公司 安全元件、数据处理装置及数据处理方法
CN111814212A (zh) * 2020-09-07 2020-10-23 南京芯驰半导体科技有限公司 总线数据的保护方法、装置、存储介质及芯片
CN112906015A (zh) * 2021-01-26 2021-06-04 浙江大学 一种基于硬件标签的内存敏感数据加密保护***
CN113297091A (zh) * 2021-06-18 2021-08-24 海光信息技术股份有限公司 SoC芯片的调试方法、装置及SoC芯片
CN113505016A (zh) * 2021-07-08 2021-10-15 北京智芯微电子科技有限公司 总线传输故障检测方法、总线***及芯片
EP4145320A1 (en) * 2021-09-07 2023-03-08 Secure Thingz Limited Electronic chip and a method for provisioning such an electronic chip
CN116795577A (zh) * 2023-06-20 2023-09-22 南京芯驰半导体科技有限公司 ***级dma安全机制方法、***芯片、电子设备及介质
CN117150478A (zh) * 2023-08-25 2023-12-01 腾讯科技(深圳)有限公司 一种基于片上***的信任根、芯片以及数据校验方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591824A (zh) * 2011-12-27 2012-07-18 深圳国微技术有限公司 Soc芯片***中控制保密数据搬运的dma控制器
CN103034599A (zh) * 2012-12-12 2013-04-10 深圳国微技术有限公司 安全dma控制器、soc***及其数据搬运方法
CN105320894A (zh) * 2014-08-01 2016-02-10 国家电网公司 一种保护传输数据和存储数据的方法及装置
CN106383790A (zh) * 2016-08-26 2017-02-08 北京智芯微电子科技有限公司 一种总线管理单元及高安全***级芯片
CN109460665A (zh) * 2018-10-25 2019-03-12 石生花微电子(南京)有限公司 一种用于保护芯片中敏感信息的装置及方法
CN111699467A (zh) * 2018-12-26 2020-09-22 华为技术有限公司 安全元件、数据处理装置及数据处理方法
CN111159097A (zh) * 2019-12-09 2020-05-15 中山大学 一种片上访存保护***及方法
CN111444528A (zh) * 2020-03-31 2020-07-24 海信视像科技股份有限公司 数据安全保护方法、装置及存储介质
CN111814212A (zh) * 2020-09-07 2020-10-23 南京芯驰半导体科技有限公司 总线数据的保护方法、装置、存储介质及芯片
CN112906015A (zh) * 2021-01-26 2021-06-04 浙江大学 一种基于硬件标签的内存敏感数据加密保护***
CN113297091A (zh) * 2021-06-18 2021-08-24 海光信息技术股份有限公司 SoC芯片的调试方法、装置及SoC芯片
CN113505016A (zh) * 2021-07-08 2021-10-15 北京智芯微电子科技有限公司 总线传输故障检测方法、总线***及芯片
EP4145320A1 (en) * 2021-09-07 2023-03-08 Secure Thingz Limited Electronic chip and a method for provisioning such an electronic chip
CN116795577A (zh) * 2023-06-20 2023-09-22 南京芯驰半导体科技有限公司 ***级dma安全机制方法、***芯片、电子设备及介质
CN117150478A (zh) * 2023-08-25 2023-12-01 腾讯科技(深圳)有限公司 一种基于片上***的信任根、芯片以及数据校验方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JÉRÉMIE BRUNEL: "SecBus, a Software/Hardware Architecture for Securing External Memories", 《2014 2ND IEEE INTERNATIONAL CONFERENCE ON MOBILE CLOUD COMPUTING, SERVICES, AND ENGINEERING》, 16 June 2014 (2014-06-16) *
金锐等: "一种基于PCIe接口的高速安全芯片设计", 《数字中国 能源互联——2018电力行业信息化年会论文集》, 15 September 2018 (2018-09-15) *

Also Published As

Publication number Publication date
CN117633920B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
KR101010801B1 (ko) 액세스 허용을 결정하는 방법 및 장치
CN210052161U (zh) 处理***、集成电路和微控制器
US10860229B2 (en) Managing privileges of different entities for an integrated circuit
US11256520B2 (en) Tracing status of a programmable device
CN111295645B (zh) 一种SoC芯片及总线访问控制方法
JP6916454B2 (ja) ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権
JP2022541662A (ja) 個別にプログラミング可能なセキュアアクセス特徴を有する領域を備えた不揮発性メモリ装置、関連する方法およびシステム
US11544413B2 (en) Cryptographic key distribution
US11886717B2 (en) Interface for revision-limited memory
US8397081B2 (en) Device and method for securing software
US10949570B2 (en) Processing system, related integrated circuit and method
US10169616B1 (en) Cryptographic processing of data and instructions stored off-chip
CN117633920B (zh) 一种敏感数据传输总线架构、控制逻辑电路及传输***
US20230140975A1 (en) Memory system verification
US20230208821A1 (en) Method and device for protecting and managing keys
CN117786699A (zh) 芯片初始化方法、装置、模块、电子设备和存储介质
JP2004070740A (ja) データ出力制限装置、回路素子及びデータ出力制限方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant