CN113177210A - 芯片结构及其操作方法 - Google Patents
芯片结构及其操作方法 Download PDFInfo
- Publication number
- CN113177210A CN113177210A CN202110423333.5A CN202110423333A CN113177210A CN 113177210 A CN113177210 A CN 113177210A CN 202110423333 A CN202110423333 A CN 202110423333A CN 113177210 A CN113177210 A CN 113177210A
- Authority
- CN
- China
- Prior art keywords
- data
- bus
- encryption
- read
- write
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种芯片结构及其操作方法,包括:至少一个总线主设备发起读命令和/或写命令,将读命令和/或写命令提供至总线,接收写数据和/或读数据;至少一个总线将读命令和/或写命令传输至总线从设备,将写数据和/或读数据传输至总线主设备;至少一个总线从设备接收读命令和/或写命令,根据读命令和/或写命令生成写数据和/或读数据,将写数据和/或读数据提供至总线;至少一个第一加解密模块连接在任何一个总线主设备与任何一个总线之间,将总线主设备与总线之间传输的命令和数据进行加密和/或解密;至少一个第二加解密模块连接在任何一个总线从设备与任何一个总线之间,将总线从设备与总线之间传输的命令和数据进行加密和/或解密。
Description
技术领域
本发明涉及集成电路技术领域,特别涉及一种芯片结构及其操作方法。
背景技术
近年来,随着云计算、物联网、移动计算等技术的发展和应用领域的不断扩展,现代信息技术在社会生活中的引领作用越来越突出。与此同时,针对安全芯片的物理攻击越来越受到关注和研究,安全芯片中往往存有敏感数据,例如密钥、用户隐私相关的信息,针对安全芯片的物理攻击手段也越来越丰富,通过各种手段来获取这些敏感信息。物理攻击首先会去掉芯片封装,然后通过物理或者化学的方式对芯片进行逐层剥离。对于所有类型的存储器,攻击者可以通过探针探测总线的方式来获取数据。现有技术中还未对这一攻击方式进行防护。
中国发明专利CN105743652B公开了一种基于地址异或的数据总线加密方法,对于总线加密密钥的每一个比特位,都与存储器地址总线的某一比特位或者多位比特位进行异或操作,得到异或后的总线加密密钥。将与地址异或后的总线加密密钥与存储器明文数据进行异或来得到密文数据。
中国发明专利申请CN111008391 A提供了一种flash加密解密接口电路及方法,对于支持加解密的接口电路,flash写操作中,先对数据加密,将加密结果写入flash;flash读操作中,将读出数据解密后送出;当读flash中未写区域时,仍会将flash默认值读出并解密后送出,从而导致无法读出正确的默认值,同时默认值被解密为其他值也会引起未知错误。
但以上两个专利文件仅对存储器的数据进行了加密,无法避免对总线的攻击。
中国发明专利申请CN109495449 A提供一种车辆CAN总线加密方法,该方法首先对T-box进行IMMO认证,IMMO认证通过的条件下T-box通过总线CAN向网关发送报文,Tbox所发送的报文需经过T-box的HSM和网关的HSM进行硬件上的加密和解密,T-box设有一报文计数器对发送的报文进行计数,网关对报文计数器进行侦测,符合设定规则才判断报文合法,报文合法的条件下将报文解密并发送至车辆其余CAN分线。
中国发明专利申请CN 111884993 A提供一种应用加密算法对数据进行加密的CAN总线加密方法,对原始数据进行SM3算法运算生成杂凑值,然后在杂凑值中抽取若干位数据与原始数据结合成128位的组合数据,然后对所述组合数据进行SM4算法运算进行加密;最后在FPGA平台上实现SM3和SM4算法进行解密,利用AXI总线完成软硬件之间的数据交互。
但以上两个专利文件仅提出了对CAN总线做加密的方法;而CAN总线是用在汽车电子领域的芯片外的系统总线,而非芯片内总线。
发明内容
本发明的目的在于提供一种芯片结构及其操作方法,以解决现有的安全芯片未防备探针探测总线导致数据泄漏的问题。
为解决上述技术问题,本发明提供一种芯片结构,包括:
至少一个总线主设备,被配置为执行下列动作:
发起读命令和/或写命令;
将读命令和/或写命令提供至总线;以及
接收写数据和/或读数据;
至少一个总线,被配置为执行下列动作:
将读命令和/或写命令传输至总线从设备;以及
将写数据和/或读数据传输至总线主设备;
至少一个总线从设备,被配置为执行下列动作:
接收读命令和/或写命令;
根据读命令和/或写命令生成写数据和/或读数据;以及
将写数据和/或读数据提供至总线;
至少一个第一加解密模块,被配置为连接在任何一个总线主设备与任何一个总线之间,所述第一加解密模块被配置为将在总线主设备与总线之间传输的命令和数据进行加密和/或解密;以及
至少一个第二加解密模块,被配置为连接在任何一个总线从设备与任何一个总线之间,所述第二加解密模块被配置为将在总线从设备与总线之间传输的命令和数据进行加密和/或解密。
可选的,在所述的芯片结构中,所述第一加解密模块包括:
写数据加密模块,被配置为将总线主设备发送至总线的写命令进行加密;
读数据解密模块,被配置为将总线发送至总线从设备的读数据进行解密。
可选的,在所述的芯片结构中,所述第二加解密模块包括:
读数据加密模块,被配置为将总线主设备发送至总线的读数据进行加密;
写数据解密模块,被配置为将总线发送至总线从设备的写命令进行解密。
可选的,在所述的芯片结构中,所述第一加解密模块和第二加解密模块均包括4个Feistel分组密码加密电路,其中:
32位的明文分组输入第一个Feistel分组密码电路,低16位数据与第一数据密钥经过F函数运算后,与高16位数据进行异或运算,作为第二个Feistel分组密码电路的低16位数据输入,第二个Feistel分组密码电路的高16位数据输入与第一个Feistel分组密码电路的低16位数据输入相同;
以此类推直至第四个Feistel分组密码电路输出32位数据,低16位数据与高16位数据交换后输出32位的密文分组。
可选的,在所述的芯片结构中,所述第一加解密模块和第二加解密模块均包括4个Feistel分组密码解密电路,其中:
32位的密文分组输入第一个Feistel分组密码电路,低16位数据与第二数据密钥经过F函数运算后,与高16位数据进行异或运算,作为第二个Feistel分组密码电路的低16位数据输入,第二个Feistel分组密码电路的高16位数据输入与第一个Feistel分组密码电路的低16位数据输入相同;
以此类推直至第四个Feistel分组密码电路输出32位数据,低16位数据与高16位数据交换后输出32位的明文分组;
第二数据密钥与第一数据密钥的数据顺序相反。
可选的,在所述的芯片结构中,
所述第一加解密模块还包括第一地址加扰模块,其被配置为将总线主设备发送至总线的地址进行加密;
所述第二加解密模块还包括第二地址加扰模块,其被配置为将总线发送至总线从设备的地址进行解密。
可选的,在所述的芯片结构中,所述第一地址加扰模块和第二地址加扰模块均包括:
地址加扰产生器,被配置为产生地址加扰数据;以及
异或门逻辑电路,被配置为将地址与地址加扰数据进行异或运算,以得到地址加密数据,以及
将地址加密数据与地址加扰数据进行异或运算,以得到地址。
可选的,在所述的芯片结构中,所述地址加扰产生器为真随机数发生器或者伪随机数发生器。
可选的,在所述的芯片结构中,所述总线主设备包括:
CPU,被配置为对总线从设备进行控制调配及发起数据传输、以及对DMA进行配置;以及
DMA,被配置为对总线从设备发起数据传输。
可选的,在所述的芯片结构中,所述总线从设备包括:
系统控制模块,被配置为管理系统时钟、系统复位和低功耗模式;
安全模块,被配置为利用密钥信息进行高速加密;
存储设备,其包括eFlash、ROM、SRAM;以及
低速设备,其包括定时器、看门狗、I2C、UART和SPI。
可选的,在所述的芯片结构中,所述总线包括:
AHB总线,被配置为连接AHB-AHB总线桥、AHB-APB总线桥、第一加解密模块、存储设备对应的第二加解密模块、以及系统控制模块对应的第二加解密模块;
AHB-AHB总线桥,被配置为连接在AHB总线与安全模块对应的第二加解密模块之间;以及
AHB-APB总线桥,被配置为连接在AHB总线与低速设备对应的第二加解密模块之间。
本发明还提供一种芯片结构的操作方法,包括:
至少一个总线主设备发起读命令和/或写命令,将读命令和/或写命令提供至第一加解密模块;
至少一个第一加解密模块接收读命令和/或写命令,将读命令和/或写命令进行加密,将加密后的读命令和/或写命令提供至总线;
至少一个总线将加密后的读命令和/或写命令传输至第二加解密模块;
至少一个第二加解密模块接收加密后的读命令和/或写命令,将加密后的读命令和/或写命令进行解密,将解密后的读命令和/或写命令提供至总线从设备;
至少一个总线从设备根据解密后的读命令和/或写命令生成写数据和/或读数据,将写数据和/或读数据提供至第二加解密模块;
至少一个第二加解密模块接收写数据和/或读数据,将写数据和/或读数据令进行加密,将加密后的写数据和/或读数据提供至总线;
至少一个总线将加密后的写数据和/或读数据传输至第一加解密模块;以及
至少一个第一加解密模块接收加密后的写数据和/或读数据,将加密后的写数据和/或读数据进行解密,将解密后的写数据和/或读数据提供至总线主设备。
本发明的发明人经研究发现,攻击者可以通过探针探测总线的方式来获取数据;因此高安全等级的芯片,除了需要对存储器做加密,还需要对芯片内部总线做加密,使得芯片内任意两个关键模块之间的数据传输都是密文传输,且该模块不能仅限于存储器。而现有技术只对汽车电子领域的芯片外的CAN总线做加密、或对flash等存储器做加解密。
基于以上洞察,在本发明提供的芯片结构及其操作方法中,通过作为总线主设备加解密模块的第一加解密模块将总线主设备与总线之间传输的命令和数据进行加密和/或解密,作为总线从设备加解密模块的第二加解密模块将总线从设备与总线之间传输的命令和数据进行加密和/或解密,实现了SoC芯片的芯片结构内,总线传输数据的加密,保证芯片结构内,各个总线主设备和总线从设备之间的数据搬运是密文传输。也就数说,本发明通过对各设备与总线之间的通信进行加密,从而补上了总线上各设备之间通信的漏洞,使得在总线的任何位置处都无法取得非加密数据,由此显著提高了安全性。
附图说明
图1是现有的片上系统的整体架构示意图;
图2是本发明一实施例芯片结构的整体结构示意图;
图3是本发明一实施例芯片结构的第一加解密模块和第二加解密模块示意图;
图4是本发明一实施例芯片结构的第一地址加扰模块和第二地址加扰模块示意图;
图5是本发明一实施例芯片结构的Feistel分组密码加密电路和Feistel分组密码解密电路示意图;
图中所示:1-总线;2-总线从设备;10-总线主设备;20-第一加解密模块;30-第二加解密模块;40-安全模块;50-存储设备;60-系统控制模块;70-低速设备;80-AHB总线;90-AHB-AHB总线桥;100-AHB-APB总线桥。
具体实施方式
在本发明中,各实施例仅仅旨在说明本发明的方案,而不应被理解为限制性的。
在本发明中,除非特别指出,量词“一个”、“一”并未排除多个元素的场景。
在此还应当指出,在本发明的实施例中,为清楚、简单起见,可能示出了仅仅一部分部件或组件,但是本领域的普通技术人员能够理解,在本发明的教导下,可根据具体场景需要添加所需的部件或组件。另外,除非另行说明,本发明的不同实施例中的特征可以相互组合。例如,可以用第二实施例中的某特征替换第一实施例中相对应或功能相同或相似的特征,所得到的实施例同样落入本申请的公开范围或记载范围。
另外,本发明的各方法的步骤的编号并未限定所述方法步骤的执行顺序。除非特别指出,各方法步骤可以以不同顺序执行。
以下结合附图和具体实施例对本发明提出的芯片结构及其操作方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
另外,除非另行说明,本发明的不同实施例中的特征可以相互组合。例如,可以用第二实施例中的某特征替换第一实施例中相对应或功能相同或相似的特征,所得到的实施例同样落入本申请的公开范围或记载范围。
本发明的核心思想在于提供一种芯片结构及其操作方法,以解决现有的安全芯片未防备探针探测总线导致数据泄漏的问题。
在本发明中,措辞“对在设备与总线之间传输的命令和数据进行加密和解密”是指,对设备与总线之间的通信进行加密和解密、即在设备与总线之间对所述命令和数据进行加密和解密,使得所述命令和数据在设备与总线之间以加密状态传输。
图1~2是一个带加解密模块和真随机数发生器等安全模块的SoC芯片,图1是现有技术中的架构,图2是本发明所揭示的架构,均采用了ARM公司的AMBA2.0总线架构。AHB总线80是SoC的片内高速总线;CPU和DMA是SoC中的总线主设备10(Master Device),可以发起数据传输;DMA包含一个SoC总线从设备(Slave Device)接口,CPU可以通过该接口配置DMA。eFlash、ROM及SRAM是芯片内的存储设备50,均为SoC总线1的从设备。系统控制模块60是SoC总线的从设备,管理系统的时钟、复位和低功耗模式等。加解密模块和真随机数发生器等安全模块40,可以与CPU和SoC总线不同频率,因此通过一个AHB-AHB总线桥90与SoC总线1通信。安全模块40也是总线的从设备。定时器、看门狗、I2C、UART和SPI等低速设备70,也是总线从设备,挂载在AHB-APB总线桥100上。还包括存储器加解密,防止物理攻击对芯片内存储器,特别是非易失性存储器做探针窥探。以SRAM为例,在对SRAM做写操作时,对操作数做加密,因此SRAM中数据是密文;对SRAM做读操作数时候,对SRAM中的密文解密,以明文形式在总线上传输。
为实现上述思想,本发明提供了一种芯片结构及其操作方法,包括:至少一个总线主设备发起读命令和/或写命令,将读命令和/或写命令提供至第一加解密模块;至少一个第一加解密模块接收读命令和/或写命令,将读命令和/或写命令进行加密,将加密后的读命令和/或写命令提供至总线;至少一个总线将加密后的读命令和/或写命令传输至第二加解密模块;至少一个第二加解密模块接收加密后的读命令和/或写命令,将加密后的读命令和/或写命令进行解密,将解密后的读命令和/或写命令提供至总线从设备;至少一个总线从设备根据解密后的读命令和/或写命令生成写数据和/或读数据,将写数据和/或读数据提供至第二加解密模块;至少一个第二加解密模块接收写数据和/或读数据,将写数据和/或读数据令进行加密,将加密后的写数据和/或读数据提供至总线;至少一个总线将加密后的写数据和/或读数据传输至第一加解密模块;以及至少一个第一加解密模块接收加密后的写数据和/或读数据,将加密后的写数据和/或读数据进行解密,将解密后的写数据和/或读数据提供至总线主设备。
本发明的实施例提供一种芯片结构,如图2所示,包括:至少一个总线主设备10,被配置为发起读命令和/或写命令,将读命令和/或写命令提供至总线,以及接收写数据和/或读数据;至少一个总线1,被配置为将读命令和/或写命令传输至总线从设备2,以及将写数据和/或读数据传输至总线主设备10;至少一个总线从设备2,被配置为接收读命令和/或写命令,根据读命令和/或写命令生成写数据和/或读数据,以及将写数据和/或读数据提供至总线1;至少一个第一加解密模块20,被配置为连接在任何一个总线主设备10与任何一个总线1之间,以及将总线主设备10与总线1之间传输的命令和数据进行加密和/或解密;以及至少一个第二加解密模块30,被配置为连接在任何一个总线从设备2与任何一个总线1之间,以及将总线从设备2与总线1之间传输的命令和数据进行加密和/或解密。
在本发明的一个实施例中,通常SoC芯片内总线,包含地址总线,写数据总线,读数据总线,时钟和控制线等信号线。在AHB总线中,地址总线是haddr,写数据总线hwdata,读数据总线hrdata;在APB总线中,地址总线是paddr,写数据总线pwdata,读数据总线prdata。因此,如图3所示,总线主设备10的加解密模块(第一加解密模块20)需要包含三个功能:地址加扰,写数据加密,读数据解密。总线从设备2的加解密模块(第二加解密模块30)需要包含三个功能:地址加扰,写数据解密,读数据加密。因此如图3所示,SoC中任意两个设备之间的数据传输,地址是经过加扰的,非原始地址,读数据和写数据均是加密数据,极大提升了芯片的抗物理探针攻击的能力。
具体的,在所述的芯片结构中,所述第一加解密模块20包括:写数据加密模块,被配置为将总线主设备10发送至总线1的写命令进行加密;读数据解密模块,被配置为将总线1发送至总线从设备2的读数据进行解密。所述第二加解密模块30包括:读数据加密模块,被配置为将总线主设备10发送至总线1的读数据进行加密;写数据解密模块,被配置为将总线1发送至总线从设备2的写命令进行解密。
在本发明的一个实施例中,在所述的芯片结构中,所述第一加解密模块20(写数据加密模块)和第二加解密模块30(读数据加密模块)均包括4个Feistel分组密码加密电路,其中:32位的明文分组输入第一个Feistel分组密码电路,低16位数据与第一数据密钥经过F函数运算后,与高16位数据进行异或运算,作为第二个Feistel分组密码电路的低16位数据输入,第二个Feistel分组密码电路的高16位数据输入与第一个Feistel分组密码电路的低16位数据输入相同;以此类推直至第四个Feistel分组密码电路输出32位数据,低16位数据与高16位数据交换后输出32位的密文分组。
在本发明的一个实施例中,在所述的芯片结构中,所述第一加解密模块20(读数据解密模块)和第二加解密模块30(写数据解密模块)均包括4个Feistel分组密码解密电路,其中:32位的密文分组输入第一个Feistel分组密码电路,低16位数据与第二数据密钥经过F函数运算后,与高16位数据进行异或运算,作为第二个Feistel分组密码电路的低16位数据输入,第二个Feistel分组密码电路的高16位数据输入与第一个Feistel分组密码电路的低16位数据输入相同;以此类推直至第四个Feistel分组密码电路输出32位数据,低16位数据与高16位数据交换后输出32位的明文分组;其中第二数据密钥与第一数据密钥的数据顺序相反。
Feistel加密算法的输入是长为2w的明文和一个密钥K=(K1,K2...,Kn)。将明文分组分成左右两半L和R,然后进行n轮迭代,迭代完成后,再将左右两半合并到一起以产生密文分组。其第i轮迭代的函数为:
Li=Ri-1
Ri=Li-1+F(Ri-1,Ki)
其中Ki是第i轮的子密钥,“+”表示异或运算,F表示轮函数。一般地,各轮子密钥彼此各不相同,且轮函数F也各不相同。代换过程完成后,在交换左右两半数据,这一过程称为置换。Feistel解密结构本质上与加密过程一样,将密文作为输入,以相反次序使用子密钥,保证加密和解密可以采用同一算法。以16轮加密为例,在加密过程中,LE16=RE15,那么在解密过程中,LD1=RD0=LE16=RE15,其中E表示加密(Encode),D表示解密(Decode)。
具体的,总线读写数据的加密和解密,采用基于Feistel分组密码算法。总线主设备加解密模块(第一加解密模块20)中的写数据加密,与总线从设备加解密模块(第二加解密模块30)中的读数据加密,采用相同的加密电路:输入32位的明文分组,输出等长的密文分组。Feistel分组密码结构由很多相同的轮函数电路组成,更多的迭代轮次能够取得更好的安全性,但是硬件开销更大,组合逻辑时序更差。迭代轮次为4可以得到足够的芯片内总线抗攻击性能。如图5所示,左侧为加密电路,右侧为解密电路,二者的电路结构几乎一致。以左侧加密电路为例,32位输入明文,被分为2个16bit的组,高16bit为LE0,低16bit为RE0。RE0与data_key[15:0]做轮转函数F操作,然后与LE0做按位异或,得到RE1。而RE0则直接传递给LE1。如此完成第一轮加密电路。以此类推,需要做4轮,注意每一轮的16位data_key是不同的。解密电路与加密电路类似,但是data_key的输入顺序相反。此外,图5中的F函数不作为限定。F函数越复杂安全性越高,但是电路复杂读也提高。F函数可以采用简单的替换运算,也可以采用复杂的有限域矩阵运算。数据加解密采用64位的密钥data_key。data_key可以通过真随机数发生器或者伪随机数发生器产生。图5中以4轮运算电路为例,描述了利用Feistel实现数据加密;但是在时序允许时,可以增加轮次提高安全等级;亦可减少轮次降低安全等级。
在本发明的一个实施例中,在所述的芯片结构中,如图4所示,所述第一加解密模块20还包括第一地址加扰模块,其被配置为将总线主设备10发送至总线1的地址进行加密;所述第二加解密模块30还包括第二地址加扰模块,其被配置为将总线1发送至总线从设备2的地址进行解密。
进一步的,在所述的芯片结构中,所述第一地址加扰模块和第二地址加扰模块均包括:地址加扰产生器,被配置为产生地址加扰数据;以及异或门逻辑电路,被配置为将地址与地址加扰数据进行异或运算,以得到地址加密数据,以及将地址加密数据与地址加扰数据进行异或运算,以得到地址。在所述的芯片结构中,所述地址加扰产生器的加扰源addr_key来自真随机数发生器或者伪随机数发生器。总线主设备10的加解密模块和总线从设备2的加解密模块采用相同的addr_key做地址加扰,且采用相同的加扰逻辑。地址加扰可以采用简单的异或门逻辑,地址经过第一地址加扰模块的异或,再经过第二地址加扰模块的异或,相当于没有任何操作,还原了本来的地址,电路结构异常简单、通用性强,且addr_key也可以重复利用。地址加扰采用32位的密钥addr_key,addr_key可以通过真随机数发生器或者伪随机数发生器产生。
在本发明的一个实施例中,如图2所示,在所述的芯片结构中,所述总线主设备10包括:CPU,被配置为对总线从设备2进行控制调配及发起数据传输、以及对DMA进行配置;以及DMA,被配置为对总线从设备2发起数据传输。
在本发明的一个实施例中,如图2所示,在所述的芯片结构中,所述总线从设备2包括:系统控制模块60,被配置为管理系统时钟、系统复位和低功耗模式;安全模块40,被配置为利用密钥信息进行高速加密;存储设备50,其包括eFlash、ROM、SRAM;以及低速设备70,其包括定时器、看门狗、I2C、UART和SPI。安全模块40一般包含加解密引擎和真随机数发生器等,它同时备有保存高度机密的密钥信息的专用存储库、以及利用存储在该专用存储库的密钥信息进行高速加密和认证处理的硬件引擎,从而实现高水平的安全系统。
在本发明的一个实施例中,如图2所示,在所述的芯片结构中,所述总线包括:AHB总线80,被配置为连接AHB-AHB总线桥90、AHB-APB总线桥100、第一加解密模块20、存储设备50对应的第二加解密模块30、以及系统控制模块60对应的第二加解密模块30;AHB-AHB总线桥90,被配置为连接在AHB总线80与安全模块40对应的第二加解密模块30之间;以及AHB-APB总线桥100,被配置为连接在AHB总线80与低速设备70对应的第二加解密模块30之间。
本发明的实施例还提供一种芯片结构的操作方法,包括:至少一个总线主设备10发起读命令和/或写命令,将读命令和/或写命令提供至第一加解密模块20;至少一个第一加解密模块20接收读命令和/或写命令,将读命令和/或写命令进行加密,将加密后的读命令和/或写命令提供至总线1;至少一个总线1将加密后的读命令和/或写命令传输至第二加解密模块30;至少一个第二加解密模块30接收加密后的读命令和/或写命令,将加密后的读命令和/或写命令进行解密,将解密后的读命令和/或写命令提供至总线从设备2;至少一个总线从设备2根据解密后的读命令和/或写命令生成写数据和/或读数据,将写数据和/或读数据提供至第二加解密模块30;至少一个第二加解密模块30接收写数据和/或读数据,将写数据和/或读数据令进行加密,将加密后的写数据和/或读数据提供至总线1;至少一个总线1将加密后的写数据和/或读数据传输至第一加解密模块20;以及至少一个第一加解密模块20接收加密后的写数据和/或读数据,将加密后的写数据和/或读数据进行解密,将解密后的写数据和/或读数据提供至总线主设备10。
图2中以ARM AMBA2.0 AHB和APB总线为例,描述了一种SoC总线加解密的方法。但是该方法应不限于AMBA 2.0AHB和APB总线,同样适用于ARM更先进的AXI总线,同时也适用于IBM的CoreConnect总线和开源的Wishbone总线。
本发明提供了一种通过对SoC芯片内总线进行加密后传输的技术,保证芯片内任意两个设备之间是密文传输。总线主设备10加解密模块需要包含三个功能:地址加扰,写数据加密,读数据解密。总线从设备2加解密模块需要包含三个功能:地址加扰,写数据解密,读数据加密。且提出了数据加解密采用Feistel分组密码结构。
在本发明提供的芯片结构及其操作方法中,通过作为总线主设备10加解密模块的第一加解密模块20将总线主设备10与总线之间传输的命令和数据进行加密和/或解密,作为总线从设备2加解密模块的第二加解密模块30将总线从设备2与总线之间传输的命令和数据进行加密和/或解密,实现了SoC芯片的芯片结构内,总线传输数据的加密,保证芯片结构内,各个总线主设备10和总线从设备2之间的数据搬运是密文传输。
综上,上述实施例对芯片结构及其操作方法的不同构型进行了详细说明,当然,本发明包括但不局限于上述实施中所列举的构型,任何在上述实施例提供的构型基础上进行变换的内容,均属于本发明所保护的范围。本领域技术人员可以根据上述实施例的内容举一反三。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (11)
1.一种芯片结构,其特征在于,包括:
至少一个总线主设备,被配置为执行下列动作:
发起读命令和/或写命令;
将读命令和/或写命令提供至总线;以及
接收写数据和/或读数据;
至少一个总线,被配置为执行下列动作:
将读命令和/或写命令传输至总线从设备;以及
将写数据和/或读数据传输至总线主设备;
至少一个总线从设备,被配置为执行下列动作:
接收读命令和/或写命令;
根据读命令和/或写命令生成写数据和/或读数据;以及
将写数据和/或读数据提供至总线;
至少一个第一加解密模块,被配置为连接在任何一个总线主设备与任何一个总线之间,所述第一加解密模块被配置为将在总线主设备与总线之间传输的命令和数据进行加密和/或解密;以及
至少一个第二加解密模块,被配置为连接在任何一个总线从设备与任何一个总线之间,所述第二加解密模块被配置为将在总线从设备与总线之间传输的命令和数据进行加密和/或解密。
2.如权利要求1所述的芯片结构,其特征在于,所述第一加解密模块包括:
写数据加密模块,被配置为将总线主设备发送至总线的写命令进行加密;
读数据解密模块,被配置为将总线发送至总线从设备的读数据进行解密。
3.如权利要求1所述的芯片结构,其特征在于,所述第二加解密模块包括:
读数据加密模块,被配置为将总线主设备发送至总线的读数据进行加密;
写数据解密模块,被配置为将总线发送至总线从设备的写命令进行解密。
4.如权利要求1所述的芯片结构,其特征在于,所述第一加解密模块和第二加解密模块均包括4个Feistel分组密码加密电路,其中:
32位的明文分组输入第一个Feistel分组密码电路,低16位数据与第一数据密钥经过F函数运算后,与高16位数据进行异或运算,作为第二个Feistel分组密码电路的低16位数据输入,第二个Feistel分组密码电路的高16位数据输入与第一个Feistel分组密码电路的低16位数据输入相同;
以此类推直至第四个Feistel分组密码电路输出32位数据,低16位数据与高16位数据交换后输出32位的密文分组。
5.如权利要求1所述的芯片结构,其特征在于,所述第一加解密模块和第二加解密模块均包括4个Feistel分组密码解密电路,其中:
32位的密文分组输入第一个Feistel分组密码电路,低16位数据与第二数据密钥经过F函数运算后,与高16位数据进行异或运算,作为第二个Feistel分组密码电路的低16位数据输入,第二个Feistel分组密码电路的高16位数据输入与第一个Feistel分组密码电路的低16位数据输入相同;
以此类推直至第四个Feistel分组密码电路输出32位数据,低16位数据与高16位数据交换后输出32位的明文分组;
第二数据密钥与第一数据密钥的数据顺序相反。
6.如权利要求1所述的芯片结构,其特征在于,
所述第一加解密模块还包括第一地址加扰模块,其被配置为将总线主设备发送至总线的地址进行加密;
所述第二加解密模块还包括第二地址加扰模块,其被配置为将总线发送至总线从设备的地址进行解密。
7.如权利要求6所述的芯片结构,其特征在于,所述第一地址加扰模块和第二地址加扰模块均包括:
地址加扰产生器,被配置为产生地址加扰数据;以及
异或门逻辑电路,被配置为将地址与地址加扰数据进行异或运算,以得到地址加密数据,以及
将地址加密数据与地址加扰数据进行异或运算,以得到地址。
8.如权利要求1所述的芯片结构,其特征在于,所述总线主设备包括:
CPU,被配置为对总线从设备进行控制调配及发起数据传输、以及对DMA进行配置;以及
DMA,被配置为对总线从设备发起数据传输。
9.如权利要求8所述的芯片结构,其特征在于,所述总线从设备包括:
系统控制模块,被配置为管理系统时钟、系统复位和低功耗模式;
安全模块,被配置为利用密钥信息进行高速加密;
存储设备,其包括eFlash、ROM、SRAM;以及
低速设备,其包括定时器、看门狗、I2C、UART和SPI。
10.如权利要求9所述的芯片结构,其特征在于,所述总线包括:
AHB总线,被配置为连接AHB-AHB总线桥、AHB-APB总线桥、第一加解密模块、存储设备对应的第二加解密模块、以及系统控制模块对应的第二加解密模块;
AHB-AHB总线桥,被配置为连接在AHB总线与安全模块对应的第二加解密模块之间;以及
AHB-APB总线桥,被配置为连接在AHB总线与低速设备对应的第二加解密模块之间。
11.一种芯片结构的操作方法,其特征在于,包括:
至少一个总线主设备发起读命令和/或写命令,将读命令和/或写命令提供至第一加解密模块;
至少一个第一加解密模块接收读命令和/或写命令,将读命令和/或写命令进行加密,将加密后的读命令和/或写命令提供至总线;
至少一个总线将加密后的读命令和/或写命令传输至第二加解密模块;
至少一个第二加解密模块接收加密后的读命令和/或写命令,将加密后的读命令和/或写命令进行解密,将解密后的读命令和/或写命令提供至总线从设备;
至少一个总线从设备根据解密后的读命令和/或写命令生成写数据和/或读数据,将写数据和/或读数据提供至第二加解密模块;
至少一个第二加解密模块接收写数据和/或读数据,将写数据和/或读数据令进行加密,将加密后的写数据和/或读数据提供至总线;
至少一个总线将加密后的写数据和/或读数据传输至第一加解密模块;以及
至少一个第一加解密模块接收加密后的写数据和/或读数据,将加密后的写数据和/或读数据进行解密,将解密后的写数据和/或读数据提供至总线主设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110423333.5A CN113177210A (zh) | 2021-04-20 | 2021-04-20 | 芯片结构及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110423333.5A CN113177210A (zh) | 2021-04-20 | 2021-04-20 | 芯片结构及其操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113177210A true CN113177210A (zh) | 2021-07-27 |
Family
ID=76923766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110423333.5A Pending CN113177210A (zh) | 2021-04-20 | 2021-04-20 | 芯片结构及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113177210A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761560A (zh) * | 2021-09-15 | 2021-12-07 | 北京中科胜芯科技有限公司 | 一种适用于Soc FPGA的片内总线系统安全传输装置 |
CN114826752A (zh) * | 2022-04-29 | 2022-07-29 | 深圳市汇顶科技股份有限公司 | 一种信号的加密方法、信号的加密装置以及终端设备 |
-
2021
- 2021-04-20 CN CN202110423333.5A patent/CN113177210A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761560A (zh) * | 2021-09-15 | 2021-12-07 | 北京中科胜芯科技有限公司 | 一种适用于Soc FPGA的片内总线系统安全传输装置 |
CN114826752A (zh) * | 2022-04-29 | 2022-07-29 | 深圳市汇顶科技股份有限公司 | 一种信号的加密方法、信号的加密装置以及终端设备 |
CN114826752B (zh) * | 2022-04-29 | 2024-02-27 | 深圳市汇顶科技股份有限公司 | 一种信号的加密方法、信号的加密装置以及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3337082B1 (en) | Method and system for generation of cipher round keys by bit-mixers | |
KR100837270B1 (ko) | 스마트 카드 및 그것의 데이터 보안 방법 | |
KR102430042B1 (ko) | 메모리 동작 암호화 | |
CN108073837B (zh) | 一种总线安全保护方法及装置 | |
US7886150B2 (en) | System debug and trace system and method, and applications thereof | |
JP3848573B2 (ja) | マイクロプロセッサシステム | |
CN108073353B (zh) | 一种数据处理的方法及装置 | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
CN112329038B (zh) | 一种基于usb接口的数据加密控制系统及芯片 | |
CN113177210A (zh) | 芯片结构及其操作方法 | |
JP2003516071A (ja) | 暗号化機能を備えるマイクロプロセッサ装置 | |
EP3803672B1 (en) | Memory-efficient hardware cryptographic engine | |
Rosenfeld et al. | Security-aware SoC test access mechanisms | |
CN112887077B (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
US9602281B2 (en) | Parallelizable cipher construction | |
US11429751B2 (en) | Method and apparatus for encrypting and decrypting data on an integrated circuit | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
CN103336920A (zh) | 用于无线传感网络soc芯片的安全系统 | |
US20210006391A1 (en) | Data processing method, circuit, terminal device and storage medium | |
CN103077362B (zh) | 具有安全机制的gpio ip核 | |
US10764285B2 (en) | Method and system for encryption using a radio frequency fingerprint | |
CN105721139A (zh) | 一种适用于有限io资源的fpga的aes加解密方法及电路 | |
CN114327255A (zh) | 存储器接口控制器及存储器 | |
KR20220093664A (ko) | 크립토 장치, 그것을 갖는 집적 회로 및 컴퓨팅 장치, 및 그것의 쓰기 방법 | |
CN204334600U (zh) | 一种适用于有限io资源的fpga的aes加解密电路 |
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 |