基于USB接口的高速芯片实现数据加解密及读取的方法技术

技术编号:33624385 阅读:19 留言:0更新日期:2022-06-02 00:52
本发明专利技术提供了基于USB接口的高速芯片实现数据加解密及读取的方法,芯片操作系统将USB接口配置为大容量存储设备,采用USB Mass Storage协议进行传输,使用Bulk

【技术实现步骤摘要】
基于USB接口的高速芯片实现数据加解密及读取的方法


[0001]本专利技术涉及加密芯片
,尤其涉及基于USB接口的高速芯片实现数据加解密及读取的方法。

技术介绍

[0002]USB作为设备间传输数据的重要接口其加密性能应较高,现有技术中对USB数据加密的方法有多种:有的在安全芯片内部使用软件去加密或者外挂硬件加解密,前者加密算法灵活,但较耗时,固件复杂性较高,后者则会增加硬件成本。传统USB加密卡对称算法代码处理流程是将所有待运算的数据都接收完毕,然后开始对称算法运算,这样处理性能会较低。有的USB加密芯片使用的固件动态切换USB收发FIFO的策略,固件尽量实现流水化处理,实际上加解密的性能也不高。为提高USB加密卡的数据传输速率,有的芯片设计在硬件上采用了一个专用于USB的直接内存存取模块(USB—DMA),该专用USB—DMA能够提高USB接口的数据传输速率,直接完成Endpoint FIFO与内存之间的数据传输;有的USB加密芯片使用多层AHB总线及AHB—Lite总线来满足多处理器系统高带宽和低延时的要求;这些设计会在硬件设计复杂程度高,芯片面积较大,芯片成本较高,外围电路设计不简单,存在应用推广的小障碍。

技术实现思路

[0003]本专利技术的目的在于提供一种基于USB接口的高速芯片实现数据加解密及读取的方法,从而解决现有技术中存在的前述问题。
[0004]为了实现上述目的,本专利技术采用的技术方案如下:一种基于USB接口的高速数据加解密芯片,包括32位RISC安全CPU核、AHB总线以及连接在所述AHB总线上的直接存取模块DMA、存储器管理单元EMMU,密码算法模块和USB通信模块,所述USB通信模块通过UTMI+Level2接口内置USB Highspeed PHY,实现高速通信模式;所述32位RISC安全CPU核集成COS操作系统,通过AHB总线接口,访问控制寄存器,从而调度各个IP完成特定的工作;提供中断和DMA 服务,实现IP请求的快速响应和数据快速搬运,从USB通信模块中读取USB接口接收到的数据,同时负责应用协议数据单元命令的解析工作;所述存储器管理单元EMMU用于对存放ROM、RAM、Flash存储器进行保护管理;所述直接存取模块DMA能够加速SOC内不同地址区间的数据搬运过程,具体包括:DMA控制器将USB通信模块接收数据缓冲区内的第一数据传输给密码算法模块,再经过密码算法模块解密或加密后传输给芯片EMMU内部的SRAM控制器的20K字节的加解密数据缓冲区暂时存储下来;因为USB控制器会使用多个RxFIFO,此时USB通信模块能够接收到第二数据,同时DMA控制器将第二数据直接传输到密码算法模块,经过数据加解密模块加密或解密后传输给接芯片内部的SRAM控制器的20KB数据缓冲区中暂时存储下。
[0005]优选的,所述芯片还包括定时器、时钟管理模块和电源管理模块。
[0006]优选的,所述密码算法模块实现SM1/SM4/SM7/DES/AES/PKU/HASH算法中的至少一
个。
[0007]优选的,所述USB通信模块包括USB串行接口控制器和USB数据收发器,所述USB 串行接口控制器设置有8k FIFO RAM,所述USB串行接口控制器与AHB总线接口完成数据的高速并行传输过程,所述USB数据收发器采用Bulk

Only传输协议接收和发送待加解密数据包以及指令数据。
[0008]本专利技术的另一个目的是提供一种高速数据加解密方法,基于所述的基于USB接口的高速数据加解密芯片,包括以下步骤:S1,芯片上电后,操作系统COS配置USB串行接口控制器使用“USB Mass Storage”协议进行盘符枚举过程;S2,USB通信模块下发APDU指令,所述APDU指令经USB数据收发器进入芯片系统,由USB串行接口控制器完成USB通信握手并将APDU指令搬移至USB RxFIFO内存中;S3,芯片操作系统COS从USB RxFIFO 内存中取得APDU指令,若是加解密数据指令,直接获取USB传输数据块数量,进入步骤S4;若不是加解密数据指令,则处于正常U盘状态;S4,操作系统COS配置USB串行接口控制器的OUT端点接收寄存器,使USB数据收发器开始接收待加解密数据包,当接收到第一包512B的数据时,解析并根据接收到的APDU指令中的选定目标算法,配置算法协处理器的寄存器及DMA模块寄存器,并对USB下发的待加解密数据启动DMA算法搬移操作;此时屏蔽USB通信模块中断,AHB总线由DMA控制器管理;S5,DMA控制器从CPU接管对密码算法模块的控制权,操控密码算法模块完成对USB RxFIFO内存中所有待加解密数据的处理,当所述DMA控制器对最后一包待加解密数据进行处理完成时,DMA控制器会产生并进入DMA完成中断服务程序,具体包括;DMA

Codec从DMA源地址寄存器处读取第一组待加解密数据写入目标算法对应的数据寄存器中,启动算法运算,等待数据运算完成;待运算完成后,DMA

Codec从目标算法对应的数据寄存器中读取计算结果数据,写入到DMA的目标地址寄存器,此时DMA数据长度寄存器减少一组数据的长度,从而完成一组数据的算法操作;此时,USB串行接口控制器同时接收下一包明文数据并写入到USB RxFIFO中,直到没有USB RxFIFO没有空间了, USB停止接收待加解密数据包;当DMA算法功能做完512B数据加密,就释放出512B 的USB RxFIFO空间,芯片USB就自动从USB主机接收下一包的数据并写入到USB RxFIFO中。
[0009]S6,所述DMA控制器操作完成中断服务程序时,将13字节的CSW填入到芯片的USB TxFIFO中,USB串行接口控制器将其返回给USB主机,完成当前加解密数据的APDU指令全过程。
[0010]优选的,步骤S2中的所述USB RxFIFO内存为8K字节,步骤S4中所述操作系统COS配置USB串行接口控制器的OUT端点接收寄存器,具体包括:所述USB数据收发器接收待下发的数据包数量,随后使能Out端点的接收功能;配置算法协处理器的寄存器具体包括:初始化加解密算法,配置目标算法的相关寄存器;配置DMA模块寄存器具体包括:配置DMA源地址寄存器是RxFIFO,目标地址寄存器是加解密SRAM缓冲区的起始地址,DMA操作数据长度寄存器是CBW中的传输数据包个数乘以512B。
[0011]本专利技术的最后一个目的在于提供了一种高速数据加解密结果的读取方法,基于所
述的基于USB接口的高速数据加解密芯片,包括以下步骤:A1,COS从CBW 31B中获取USB数据收发器要读取的数据包长度SendSize,将SendSize信息写入到USB串行接口控制器的目标端点IN控制寄存器中并使能发送功能;A2,配置USB 目标端点IN控制寄存器和DMA控制器目标地址、源地址以及搬移长度,其中,所述目标地址是TxFIFO,所述源地址是加解密20K Codec RAM缓冲本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于USB接口的高速数据加解密芯片,其特征在于,包括32位RISC安全CPU核、AHB总线以及连接在所述AHB总线上的直接存取模块DMA、存储器管理单元EMMU,密码算法模块和USB通信模块,所述USB通信模块通过UTMI+Level 2接口内置USB Highspeed PHY,实现高速通信模式;所述32位RISC安全CPU核集成COS操作系统,通过AHB总线接口,访问控制寄存器,从而调度各个IP完成特定的工作;提供中断和DMA 服务,实现IP请求的快速响应和数据快速搬运,从USB通信模块中读取USB接口接收到的数据,同时负责应用协议数据单元命令的解析工作;所述存储器管理单元EMMU用于对存放ROM、RAM、Flash存储器进行保护管理;所述直接存取模块DMA能够加速SOC内不同地址区间的数据搬运过程,具体包括:DMA控制器将USB通信模块接收数据缓冲区内的第一数据传输给密码算法模块,再经过密码算法模块解密或加密后传输给芯片EMMU内部的SRAM控制器的20K字节的加解密数据缓冲区暂时存储下来;因为USB控制器会使用多个RxFIFO,此时USB通信模块接收第二数据,同时DMA控制器将第二数据直接传输到密码算法模块,经过数据加解密模块加密或解密后传输给接芯片内部的SRAM控制器的20KB数据缓冲区中暂时存储。2.根据权利要求1所述的基于USB接口的高速数据加解密芯片,其特征在于,所述芯片还包括定时器、时钟管理模块和电源管理模块。3.根据权利要求1所述的基于USB接口的高速数据加解密芯片,其特征在于,所述密码算法模块实现SM1/SM4/SM7/DES/AES/PKU/HASH算法中的至少一个。4.根据权利要求1所述的基于USB接口的高速数据加解密芯片,其特征在于,所述USB通信模块包括USB串行接口控制器和USB数据收发器,所述USB 串行接口控制器设置有8k FIFO RAM,所述USB串行接口控制器与所述AHB总线接口完成数据的高速并行传输过程,所述USB数据收发器采用Bulk

Only传输协议接收和发送待加解密数据包以及指令数据。5.一种高速数据加解密方法,基于权利要求1

4任一所述的基于USB接口的高速数据加解密芯片,其特征在于,包括以下步骤:S1,芯片上电后,操作系统COS配置USB串行接口控制器使用“USB Mass Storage”协议进行盘符枚举过程;S2,USB通信模块下发APDU指令,所述APDU指令经USB数据收发器进入芯片系统,由USB串行接口控制器完成USB通信握手并将APDU指令搬移至USB RxFIFO内存中;S3,芯片操作系统COS从USB RxFIFO 内存中取得APDU指令,若是加解密数据指令,直接获取USB传输数据块数量,进入步骤S4;若不是加解密数据指令,则处于正常U盘状态;S4,操作系统COS配置USB串行接口控制器的OUT端点接收寄存器,使USB数据收发器开始接收待加解密数据包,当接收到第一包512B的数据时,解析并根据接收到的APDU指令中的选定目标算法,配置算法协处理器的寄存器及DMA模块寄存器,并对USB下发的待加解密数据启动DMA算法搬移操作;此时屏蔽USB通信模块中断,AHB总线由DMA控制器管理;S5,DMA控制器从CPU接管对密码算法模块的控制权,操控密码算法模块完成对USB RxFIFO内存中所有待加解密数据的处理,当所述DMA控制器对最后一包待加解密数据进行处理完成时,DMA控制器会产生并进入DMA完成中断服务程序,具体包括;DMA

Codec从DMA源地址寄存器处读取第一组待加解密数据写入目标算法对应的数据寄存器中,启动算法运算,等待数据运算完成;待运算完成后,DMA

Codec从目标算法对应的数据寄存器中读取计算结果数据,写入到DMA的目标地址寄存器,此时DMA数据长度寄存器
减少一组数据的长度,从而完成一组数据的算法操作;此时,USB串行接口控制器同时接收下一包明文数据并写入到USB RxFIFO中,直到USB RxFIFO没有空间了,即停止接收待加解密数据包;当DMA算法功能做完512B数据加密,就释放出512B 的USB RxFIFO空间,芯片USB就自动从USB主机接收下...

【专利技术属性】
技术研发人员:何军
申请(专利权)人:广州万协通信息技术有限公司
类型:发明
国别省市:

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

1