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

文档序号:30214429发布日期:2022-05-31 13:22阅读:来源:国知局

技术特征:
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主机接收下一包的数据并写入到usb rxfifo中;s6,所述dma控制器操作完成中断服务程序时,将13字节的csw填入到芯片的usb txfifo中,usb串行接口控制器将其返回给usb主机,完成当前加解密数据的apdu指令全过程。6.根据权利要求5所述的高速数据加解密方法,其特征在于,步骤s2中的所述usb rxfifo内存为8k字节,步骤s4中所述操作系统cos配置usb串行接口控制器的out端点接收寄存器,具体包括:所述usb数据收发器接收待下发的数据包数量,随后使能out端点的接收功能;配置算法协处理器的寄存器具体包括:初始化加解密算法,配置目标算法的相关寄存器;配置dma模块寄存器具体包括:配置dma源地址寄存器是rxfifo,目标地址寄存器是加解密sram缓冲区的起始地址,dma操作数据长度寄存器是cbw中的传输数据包个数乘以512b。7.一种高速数据加解密结果的读取方法,其特征在于,基于权利要求1-4任一所述的基于usb接口的高速数据加解密芯片,包括以下步骤:a1,cos从cbw 31b中获取usb数据收发器要读取的数据包长度sendsize,将sendsize信息写入到usb串行接口控制器的目标端点in控制寄存器中并使能发送功能;a2,配置usb 目标端点in控制寄存器和dma控制器目标地址、源地址以及搬移长度,其中,所述目标地址是txfifo,所述源地址是加解密20k codec ram缓冲区的起始地址,所述搬移长度是当前txfifo的可用空间txfifocursize,启动dma控制器;a3,获取usb txfifo的当前可用空间txfifocursize1,若sendsize>txfifocursize1,且已发送的数据包长度等于txfifo的当前可用空间的一半时,那么此时 usb控制器会产生txfifo半空中断,进入步骤a4;若sendsize<txfifocursize1,则已发送的数据包长度等于要读取的数据包长度,直接进入步骤a5;a4,重新获取当前txfifo的可用空间txfifocursize2为x k,再次重新配置dma搬移长度等于x k,启动dma,修改当前待读取的数据为sendsize=sendsize-x;重复该步骤,直到sendsize数值为0,进入步骤a5;a5, 在最后的一次dma操作完成中断服务程序中,将13字节的csw填入到芯片的usb txfifo中,到此时就完成了当前的bulk协议传输,即读取加解密结果的apdu指令。8.根据权利要求7所述的高速数据加解密结果的读取方法,其特征在于,所述usb txfifo 配置的大小是4kb空间, 按512b一包数据,由dma 写入8个512b的usb数据包,当dma写入一包512b时, usb ip自动生成一个“端口号事务”信息到tx in请求队列中;当usb主机请求读的数据包数多于8个时,应当使能usb txfifo半空中断, 当usb ip txfifo发送了4个512b数据包时,就会产生txfifo半空的usb中断通知cpu;在usb半空中断服务程序中,配置dma继续向usb txfifo中搬移待发送数据包。9.根据权利要求7所述的高速数据加解密结果的读取方法,其特征在于,所述dma包括
普通dma、外设dma和算法dma,所述普通 dma在存储器和普通 ip 之间进行搬运;所述外设 dma即在usb和存储器之间进行搬运;所述算法 dma,即在存储器-算法-存储器之间进行搬运;所述算法dma的运行原理流程如下:第一步:初始化算法,配置目标算法的key、iv相关寄存器;第二步:初始化dma,配置dma数据源地址rxfifo,dma数据目标地址和dma操作数据长度寄存器;第三步:根据算法类型,配置dma传输控制寄存器,启动算法dma进行算法操作;第四步:算法dma从dma的数据源地址处读取一组数据写入算法对应的数据寄存器中,启动算法运算,等待数据运算完成;然后算法dma再从对应的数据寄存器中读取计算结果数据,写入到dma的数据目标地址处并增加地址,dma数据长度寄存器减少一组数据的长度,从而完成一组数据的算法加解密和读取操作。

技术总结
本发明提供了基于USB接口的高速芯片实现数据加解密及读取的方法,芯片操作系统将USB接口配置为大容量存储设备,采用USB Mass Storage协议进行传输,使用Bulk-Only传输和SCSI命令集与主机CPU进行通信。本发明设计COS采用USB免驱设计,具有USB读写高性能,能够快速完成枚举过程,COS支持的APDU指令符合GM/T 0017规范。该芯片具有高速加解密数据的能力,可以应用于视频流加解密系统及嵌入式信息安全等领域。全等领域。全等领域。


技术研发人员:何军
受保护的技术使用者:广州万协通信息技术有限公司
技术研发日:2022.04.28
技术公布日:2022/5/30
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1