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.一种芯片结构的操作方法,其特征在于,包括:
至少一个总线主设备发起读命令和/或写命令,将读命令和/或写命令提供至第一加解密模块;
至少一个第一加解密模块接收读命令和/或写命令,将读命令和/或写命令进行加密,将加密后的读命令和/或写命令提供至总线;
至少一个总线将加密后的读命令和/或写命令传输至第二加解密模块;
至少一个第二加解密模块接收加密后的读命令和/或写命令,将加密后的读命令和/或写命令进行解密,将解密后的读命令和/或写命令提供至总线从设备;
至少一个总线从设备根据解密后的读命令和/或写命令生成写数据和/或读数据,将写数据和/或读数据提供至第二加解密模块;
至少一个第二加解密模块接收写数据和/或读数据,将写数据和/或读数据令进行加密,将加密后的写数据和/或读数据提供至总线;
至少一个总线将加密后的写数据和/或读数据传输至第一加解密模块;以及
至少一个第一加解密模块接收加密后的写数据和/或读数据,将加密后的写数据和/或读数据进行解密,将解密后的写数据和/或读数据提供至总线主设备。