一种高速安全加密MicroSD卡的制作方法

文档序号:17065996发布日期:2019-03-08 22:55阅读:212来源:国知局
一种高速安全加密Micro SD卡的制作方法

本发明涉及sd卡技术领域,具体涉及一种高速安全加密microsd卡。



背景技术:

目前,商用密码的实际应用,多以安全芯片为载体,通过soc芯片设计技术,将国密算法以硬件ip核的形式实现并集成到安全芯片中。这样既充分利用了硬件逻辑运算速度快的优势,又以硬件的形式充分保证了国密算法的安全性。在产品类型方面,有usb、串口、sd、microsd等多种接口形态的产品,其中,microsd卡以接口通信速率较高、体积小巧便携等特点,广泛应用于智能手机、对讲机、安防监控、智能路由器等有安全业务需求的终端设备。

目前,商用密码的实际应用,多以安全芯片为载体,通过soc芯片设计技术,将国密算法以硬件ip核的形式实现并集成到安全芯片中。这样既充分利用了硬件逻辑运算速度快的优势,又以硬件的形式充分保证了国密算法的安全性。在产品类型方面,有usb、串口、sd、microsd等多种接口形态的产品,其中,microsd卡以接口通信速率较高、体积小巧便携等特点,广泛应用于智能手机、对讲机、安防监控、智能路由器等有安全业务需求的终端设备。

同时,随着信息通信业务数据量的大幅提升,既要保证数据信息的安全,又要尽量减小因加密或解密处理造成的数据传输延迟。因此,如何研制高速加解密的硬件产品成为当下的关键技术问题。

从系统架构方面分析,安全加密microsd卡主要由四部分组成:1)sd接口模块,主要负责sd通信协议的实现,与上位机终端的sdhost实现对接;2)cos模块,主要包括cpu、内存sram、内嵌flash及系统ip,主要实现加密卡的系统管理、功能实现、代码存储,以及密钥、证书等关键信息的存储;3)密码算法模块,主要是硬件实现的密码算法引擎;4)数据存储模块,包括存储控制器及硬件形式的存储模块,主要负责microsd卡数据存储的控制及实现。根据以上四部分的硬件组合方式,目前安全加密microsd卡的技术实现方案主要有以下三种:

方案一:如图1所示,方案一将sd接口模块、cos模块、密码算法模块、数据存储模块中的存储控制器集成设计到一颗soc芯片中,即设计一颗规模较大的安全芯片,将安全加密microsd卡的所有功能都集中在这颗安全芯片内部完成。该安全芯片一方面通过sd接口模块与上位机终端连接,一方面在卡内部通过nandflash接口与数据存储模块中的存储模块连接。

方案二:如图2所示,方案二将sd接口模块、cos模块和密码算法模块集成为一颗soc安全芯片,另外,将存储控制器设计为存储控制芯片。其中,安全芯片通过sd接口与上位机终端连接,并通过sd接口与存储控制芯片连接。存储控制芯片通过nandflash接口与存储芯片连接。

方案三:如图3所示,方案三中,整个microsd卡内由三颗芯片组成:一颗安全芯片、一颗sd接口芯片和一颗存储芯片。其中安全芯片由cos模块和密码算法模块组成,sd接口芯片由sd接口模块和数据存储模块的存储控制器组成,存储芯片由数据存储模块中的存储模块组成。sd接口芯片向上通过sd接口与上位机终端连接,向下通过spi接口或iso7816等接口与安全芯片连接,并通过nandflash接口与存储芯片连接。

目前,从系统架构和业务功能方面分析,现有方案仍存在一些亟待解决的问题,主要归纳如下:

(1)方案一中安全芯片集成了所有模块,这种追求“大而全”的方案有诸多问题:一方面,过多模块的集成增加了soc安全芯片的设计风险;另一方面,安全芯片的内嵌flash除了保存密钥、证书等关键信息外,还需要保存芯片的cos代码,而存储模块及sd接口模块会大大增加代码量,这就需要安全芯片要提供足够的内嵌flash空间,既提升了产品的原料成本,又对芯片的工艺良率等提出了较高的要求,也会导致成本的提升。另外,在存储模块或sd接口模块更新换代时,也必须重新设计整颗安全芯片,附加损耗太大。

(2)方案二虽然将存储控制器单独规划出来,形成存储控制芯片,但安全芯片中还需增加sd主设备模块,影响产品成本;另外,完成数据存储功能时,过多的通信接口环节,也会影响存储的速率。

(3)加密卡的密码运算速率是产品的重要性能指标,方案三虽然可以规避方案一和方案二的缺点,但是,密码运算是要在安全芯片内部完成的,运算前后的数据都要经过与sd接口芯片间低速的spi或iso7816,影响了产品整体的处理速率。另外,在安全芯片内部,数据需要在cpu控制下,按密码算法规定的分组长度传输到密码算法模块中处理,普通的串行操作也会影响处理速率。



技术实现要素:

针对现有技术的不足,本发明旨在提供一种高速安全加密microsd卡,可以加快数据传输的速率,并有效提高密码运算处理速率。

为了实现上述目的,本发明采用如下技术方案:

一种高速安全加密microsd卡,包括sd接口芯片、安全芯片和存储芯片;所述sd接口芯片中集成有sd接口模块和存储控制器,所述sd接口模块通讯连接于sd接口;所述安全芯片中集成有密码算法模块和cos模块;所述存储芯片中集成有存储模块,所述存储模块和存储控制器通过nandflash接口通讯连接;还包括hsspi接口及dma模块;hsspi主设备集成于所述sd接口芯片中,所述sd接口模块、存储控制器、hsspi主设备通过所述sd接口芯片的片内总线通讯连接;hsspi从设备及dma模块均集成于所述安全芯片中,所述密码算法模块、cos模块、hsspi从设备及dma模块通过所述安全芯片的片内总线通讯连接;所述hsspi主设备和hsspi从设备通讯连接于hsspi接口。

进一步地,所述安全芯片中还集成有密码算法加速器,所述密码算法加速器和cos模块、密码算法模块均通讯连接。

更进一步地,所述安全芯片中还集成有位运算加速器,所述位运算加速器和所述密码算法加速器、cos模块、密码算法模块均通讯连接。

本发明还提供一种利用上述高速安全加密microsd卡进行数据加密或解密的方法,包括如下步骤:

s1、上位机终端通过sd接口向高速安全加密microsd卡发送写数据命令和待加密或解密的数据;

s2、sd接口芯片接收写数据命令和待加密或解密的数据并进行解析,然后将写数据命令和待加密或解密的数据通过hsspi主设备向安全芯片传输;

s3、安全芯片中的hsspi从设备接收一个512字节的数据块的写数据命令和待加密或解密的数据至自身缓存,然后置“数据传输完毕”信号标志;

s4、dma模块自动检测到hsspi从设备所置的“数据传输完毕”信号标志后,将接收到的待加密或解密的数据由hsspi从设备的缓存搬至安全芯片的cos模块的内存,然后自动置“数据搬移完毕”信号标志;

s5、hsspi从设备清除步骤s3所置的“数据传输完毕”信号标志;

s6、dma模块自动检测是否接收完全部待加密或解密的数据,若有则继续从步骤s3开始再次执行数据接收,直至全部接收完毕后停止接收;

s7、密码算法模块对待加密或解密的数据进行加密或解密的处理并将加密或解密后的结果数据保存在安全芯片的cos模块的内存中;

s8、上位机终端通过sd接口发送读数据的命令,以读取加密或解密后的结果数据;

s9、sd接口芯片接收到读数据的命令后通过hsspi主设备向安全芯片发送该读数据的命令;

s10、安全芯片的hsspi从设备收到hsspi主设备下发的读数据的命令,并置“数据准备回送”信号标志;

s11、dma模块自动检测到hsspi从设备所置的“数据准备回送”信号标志后,从安全芯片的cos模块的内存中搬运一个512字节的数据块的加密或解密的结果数据至hsspi从设备的缓存中,然后置“数据准备完毕”标志;

s12、步骤s11中的数据块通过hsspi接口传至sd接口芯片,然后hsspi从设备置“数据上传完成”信号标志;

s13、所述dma模块自动检测到hsspi从设备所置的“数据上传完成”信号标志,确认本次传输结束;dma模块自动检测是否还有后续的加密或解密的结果数据需要传输,如有则继续从步骤s11开始再次进行数据块传输,否则停止传输;

s14、所有加密或解密后的结果数据传输至sd接口芯片后,由hsspi主设备传输至sd接口模块,sd接口模块将接收到的命令执行结果按协议帧格式封装数据包,并通过sd接口向上位机终端传送;

s15、上位机终端通过sd接口接收完成加密或解密的结果数据。

进一步地,步骤s7的具体过程如下:

s7.1、cos模块的cpu解析接收到的待加密或解密的数据,配置并启动密码算法加速器,将待加密或解密的数据的处理任务交给密码算法加速器进行,此时cos模块的cpu可以接着去处理后续其他任务;

s7.2、密码算法加速器按照流水线策略控制所述密码算法模块处理本次的待加密或解密的数据,在此过程中如需进行位运算,则调用位运算加速器进行相应处理;

s7.3、密码算法加速器判断是否还有未处理的待加密或解密的数据,如果有则继续处理,否则退出流水线,加密或解密后的结果数据被密码算法加速器搬至cos模块的内存。

进一步地,步骤s7.2的具体过程为:

s7.2.1、由密码算法加速器将第1组输入数据从cos模块的内存搬至密码算法模块的输入缓存,然后配置密码算法模块的控制器,启动第1组输入数据的加密或解密运算;

s7.2.2、由密码算法加速器将第m组输入数据从cos模块的内存搬至密码算法模块的输入缓存;1<m≤n,m为整数,n为数据总组数;

s7.2.3、由密码算法加速器查询密码算法模块的处理状态,待密码算法模块完成第m-1组数据的加密或解密运算后,由密码算法加速器配置密码算法模块的控制器,启动第m组输入数据的加密或解密运算;

s7.2.4、密码算法模块进行第m组输入数据的加密或解密运算;同时,密码算法加速器将第m-1组输入数据运算的结果从密码算法模块的输出缓存搬至cos模块的内存;

s7.2.5、密码算法加速器将m+1组输入数据从cos模块的内存搬至密码算法模块的输入缓存;

s7.2.6、密码算法加速器查询密码算法模块的处理状态,待密码算法模块完成第m组数据的加密或解密运算后,由密码算法加速器配置密码算法模块的控制器,启动第m+1组输入数据的加密或解密运算;

s7.2.7、返回从步骤s7.2.4开始按相同的步骤依次处理后续各组数据,直至全部数据处理完毕。

需要指出的是,对称密码算法每组数据长度为128bit。

本发明的有益效果在于:

1、本发明的高速安全加密microsd卡通过采用hsspi接口和dma模块的结合设计,一方面能够提升接口速率,另一方面,dma模块既可以自动完成hsspi接口在从设备端的硬件握手信号查询及配置,又可以快速完成hsspi从设备端的数据搬运,从而可以避免cos模块中用软件实现上述操作造成的耗时,进一步提高了数据传输速率;

2、本发明的高速安全加密microsd卡通过增加密码算法加速器作为协处理器以控制密码算法模块的配置和数据输入输出,并通过增加位运算加速器使得在此过程中的位运算由硬件实现的位运算加速器完成,可以有效提高安全芯片内部处理加密或解密任务的速率,进一步提升加密卡的整体性能。

3、本发明的高速安全加密microsd卡有助于节约成本,降低产品的设计风险,提高产品升级换代的灵活性。

附图说明

图1为现有技术方案一的结构示意图;

图2为现有技术方案二的结构示意图;

图3为现有技术方案三的结构示意图;

图4为本发明实施例1的高速安全加密microsd卡的结构示意图;

图5为本发明实施例2的方法流程示意图;

图6为本发明实施例1中hsspi接口的组成连接示意图;

图7为本发明实施例1中所述在安全芯片内部的根据数据传输过程来查询或置起hsspi从设备的对应握手信号的过程示意图;

图8为本发明实施例1中密码算法加速器coa的结构示意图;

图9为本发明实施例2中步骤s7的实施流程示意图;

图10为本发明实施例2中步骤s7.2的实施流程示意图。

具体实施方式

以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。

实施例1

本实施例提供一种高速安全加密microsd卡,如图4所示,包括sd接口芯片(sdif)、安全芯片(secchip)和存储芯片(l73a);所述sd接口芯片中集成有sd接口模块和存储控制器,所述sd接口模块通讯连接于sd接口;所述安全芯片中集成有密码算法模块和cos模块;所述存储芯片中集成有存储模块,所述存储模块和存储控制器通过nandflash接口通讯连接。所述存储模块主要为数据的存储提供nandflash等硬件物理介质,并响应所述存储控制器发送的数据存储命令。

进一步地,所述sd接口芯片与安全芯片通过高速的hsspi接口通讯连接。hsspi主设备集成于所述sd接口芯片中,所述sd接口模块、存储控制器、hsspi主设备通过所述sd接口芯片的片内总线通讯连接;hsspi从设备及dma模块均集成于所述安全芯片中,所述密码算法模块、cos模块、hsspi从设备及dma模块通过所述安全芯片的片内总线通讯连接;所述hsspi主设备和hsspi从设备通过hsspi接口通讯连接。

进一步地,所述安全芯片中还集成有密码算法加速器(coa),所述密码算法加速器分别和cos模块、密码算法模块通讯连接。

更进一步地,所述安全芯片中还集成有位运算加速器(boa),所述位运算加速器和所述密码算法加速器、cos模块、密码算法模块均通讯连接。

需要说明的是,从物理层面来看,hsspi接口是一种高速串行外设接口,能够使用较简单的结构实现较高速的数据传输速率。hsspi接口使用主设备/从设备的存在形式,主设备集成在sd接口芯片中,从设备集成在安全芯片中,两者通讯连接,如图6所示。除电源/地连接线外,由四根数据线、一根时钟线和一根命令线组成,传输速度可达200mb/s。hsspi接口的通信由主设备发起,采用“命令—应答”的机制,数据以512字节为块单位随hsspi主设备发出的读数据命令和写数据命令来上传和下发。相对于传统方案中的spi或iso7816接口,本实施例中采用hsspi接口进行通讯可明显提升数据传输速率。

进一步地,从逻辑层面来看,hsspi接口在通信过程中需要有主从设备的信号握手过程,在安全芯片内部,需要根据数据传输过程来查询或置起hsspi从设备的对应握手信号,并根据这些信号的状态来完成数据操作,如图7所示。在这一过程中,有两个关键的耗时环节:(1)握手信号标志的查询及配置;(2)数据在hsspi从设备缓存及安全芯片内存之间的搬移。上述环节如果在cos模块中用循环等待及循环赋值的方法实现,将会非常耗时。

因此,为进一步提升数据传输性能,使数据尽快通过hsspi接口传送至cos模块的内存中供cos模块处理,本实施例中,针对上述两个关键环节采用了硬件实现的优化方案。优化方案使用了dma模块,将hsspi从设备的握手信号硬件连接至dma模块,使其能够通过控制这些握手信号协助hsspi从设备完成硬件握手,并能够完成数据在hsspi从设备缓存及安全芯片内存间的搬移。

本实施例中,通过hsspi接口和dma模块的结合设计,一方面提升接口速率,另一方面可以避免cos模块中用软件实现上述操作造成的耗时,进一步提高了数据传输速率。

更进一步地,需要说明的是,加密或解密任务主要是由安全芯片内部的密码算法模块(sm1、sm4、aes等)完成,此过程涉及到密钥设置、iv值的输入、源数据的分组及输出、算法模块控制寄存器的配置、算法模块状态寄存器的查询、加解密运算结果的搬移等步骤。现有技术中,通常上述一系列步骤由安全芯片cos模块的cpu控制完成。

为了提高安全芯片内部处理加密或解密任务的速率,进一步提升加密卡的整体性能,在本实施例中,通过增加密码算法加速器作为协处理器以控制密码算法模块的状态查询、配置和数据输入输出,并通过增加位运算加速器使得在此过程中的位运算由硬件逻辑来完成。

密码算法加速器coa是一种硬件协处理器,该协处理器单元能够在无cpu干预的情况下,独立完成一系列操作,包括逻辑运算和数据搬移等。coa以ip的形式集成于安全芯片中,挂载在系统的ahb总线上。coa的结构如图8所示,主要由以下几部分组成:ahb总线接口模块、pc(programcounter)控制器、指令解码器、算数逻辑运算器alu(arithmeticlogicalunit)和通用寄存器。其中,ahb总线接口模块用于通过ahb总线获取指令和数据;pc控制器用于生成及修改pc指针,控制自身指令执行流程;指令解码器用于对从ahb总线获取的指令进行解码;alu用于完成coa自身指令执行过程中的算数和逻辑运算;通用寄存器用于指令回写等相关操作。

位运算加速器boa是一种硬件实现循环移位、按位异或等位运算的模块。boa也是以ip的形式集成于安全芯片中,并通过ahb总线与片内其他模块相连。在本实施例中,boa主要用来通过硬件逻辑辅助coa完成位运算,例如数据索引的循环移位,以及过程数据的按位异或。

实施例2

如图5所示,本实施例提供一种利用实施例1的高速安全加密microsd卡进行数据传输的方法,包括如下步骤:

s1、上位机终端通过sd接口向高速安全加密microsd卡发送写数据命令和待加密或解密的数据;

s2、sd接口芯片接收写数据命令和待加密或解密的数据并进行解析,然后将写数据命令和待加密或解密的数据通过hsspi主设备向安全芯片传输;

s3、安全芯片中的hsspi从设备接收一个512字节的数据块的写数据命令和待加密或解密的数据至自身缓存,然后置“数据传输完毕”信号标志;

s4、dma模块自动检测到hsspi从设备所置的“数据传输完毕”信号标志后,将接收到的待加密或解密的数据由hsspi从设备的缓存搬至安全芯片的cos模块的内存,然后自动置“数据搬移完毕”信号标志;

s5、hsspi从设备清除步骤s3所置的“数据传输完毕”信号标志;

s6、dma模块自动检测是否接收完全部待加密或解密的数据,若有则继续从步骤s3开始再次执行数据接收,直至全部接收完毕后停止接收;

s7、密码算法模块对待加密或解密的数据进行加密或解密的处理并将加密或解密后的结果数据保存在安全芯片的cos模块的内存中;

s8、上位机终端通过sd接口发送读数据的命令,以读取加密或解密后的结果数据;

s9、sd接口芯片接收到读数据的命令后通过hsspi主设备向安全芯片发送该读数据的命令;

s10、安全芯片的hsspi从设备收到hsspi主设备下发的读数据的命令,并置“数据准备回送”信号标志;

s11、dma模块自动检测到hsspi从设备所置的“数据准备回送”信号标志后,从安全芯片的cos模块的内存中搬运一个512字节的数据块的加密或解密的结果数据至hsspi从设备的缓存中,然后置“数据准备完毕”标志;

s12、步骤s11中的数据块通过hsspi接口传至sd接口芯片,然后hsspi从设备置“数据上传完成”信号标志;

s13、所述dma模块自动检测到hsspi从设备所置的“数据上传完成”信号标志,确认本次传输结束;dma模块自动检测是否还有后续的加密或解密的结果数据需要传输,如有则继续从步骤s11开始再次进行数据块传输,否则停止传输;

s14、所有加密或解密后的结果数据传输至sd接口芯片后,由hsspi主设备传输至sd接口模块,sd接口模块将接收到的命令执行结果按协议帧格式封装数据包,并通过sd接口向上位机终端传送;

s15、上位机终端通过sd接口接收完成加密或解密的结果数据。在本实施例中,如图9所示,步骤s7的具体过程如下:

s7.1、cos模块的cpu解析接收到的待加密或解密的数据,配置并启动密码算法加速器,将待加密或解密的数据的处理任务交给密码算法加速器进行;此时cos模块的cpu可以接着去处理后续其他任务;

s7.2、密码算法加速器按照流水线策略控制所述密码算法模块处理本次的待加密或解密的数据,在此过程中如需进行位运算,则调用位运算加速器进行相应处理;

s7.3、密码算法加速器判断是否还有未处理的待加密或解密的数据,如果有则继续处理,否则退出流水线,加密或解密后的结果数据被密码算法加速器搬至cos模块的内存。

在本实施例中,为提高密码算法加速器coa控制密码算法模块的处理速度,采用了流水线的加速策略,进一步降低了数据输入输出的时间开销,如图10所示,步骤s7.2的具体过程为:

s7.2.1、由密码算法加速器将第1组输入数据从cos模块的内存搬至密码算法模块的输入缓存,然后配置密码算法模块的控制器,启动第1组输入数据的加密或解密运算;

s7.2.2、由密码算法加速器将第m组输入数据从cos模块的内存搬至密码算法模块的输入缓存;1<m≤n,m为整数,n为数据总组数;

s7.2.3、由密码算法加速器查询密码算法模块的处理状态,待密码算法模块完成第m-1组数据的加密或解密运算后,由密码算法加速器配置密码算法模块的控制器,启动第m组输入数据的加密或解密运算;

s7.2.4、密码算法模块进行第m组输入数据的加密或解密运算;同时,密码算法加速器将第m-1组输入数据运算的结果从密码算法模块的输出缓存搬至cos模块的内存;

s7.2.5、密码算法加速器将m+1组输入数据从cos模块的内存搬至密码算法模块的输入缓存;

s7.2.6、密码算法加速器查询密码算法模块的处理状态,待密码算法模块完成第m组数据的加密或解密运算后,由密码算法加速器配置密码算法模块的控制器,启动第m+1组输入数据的加密或解密运算;

s7.2.7、返回从步骤s7.2.4开始按相同的步骤依次处理后续各组数据,直至全部数据处理完毕。

对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1