一种实时加密sd卡及高速加解密方法

文档序号:6481573阅读:420来源:国知局
专利名称:一种实时加密sd卡及高速加解密方法
技术领域
本发明涉及一种实时加密SD卡及高速加解密方法,特别涉及SD卡加解 密芯片的设计以及提高芯片数据加解密速度的方法,属于信息安全加密技术 领域。
背景技术
目前消费类电子设备被广泛应用,SD卡(本文泛指接口符合SD规范的 各种规格的卡)因其储量大、尺寸小、速度快、成本低的特点,在手机、数 码摄像机、数码相机、PDA等电子产品中被大量使用。根据SD卡的应用, SD卡可以分为SD存储卡、SDIO卡和SD Combo卡三种。其中SD存储卡 用于数据的存储,比如手机、数码摄像机、数码相机、PDA等电子产品中大 量使用SD存储卡;SDIO卡用于功能实现,比如通过SD接口实现摄像功能、 电视功能、GPS功能等等;SD Combo卡同时实现了 SD Memory和SDIO功 負fe,既可以进行数据存储,又可以实现特定功能。
随着电子信息安全需求的快速增长,有效保障数字资产信息的安全,使 其不被非法用户获取,这已经成为用户和业界的一种共识。作为存储和传输 数字信息的SD卡,面临同样的信息安全问题。
由于多媒体和互联网等技术的快速发展,如今的存储数据量和数据处理 量都以指数级增加,SD存储卡面对的存储数据量和SDIO卡面临的数据流处 理量也在同比增长,这一方面对SD卡的加密手段和方式提出更高要求,同 时也对SD卡的加解密速度提出了严峻挑战。
目前SD卡数据流加密速度慢的原因主要在于,现有SD卡加密在系统结 构上没有做到数据流读写过程与加解密过程的并行处理,因此在闪存的数据 线上或SDIO应用功能的数据流通道上体现为数据流有"断流,,的情况。在 加密方式和手段上,现有数据加密方法多偏重于软件管理方法,软件管理方 法的缺点在于保存在闪存上的数据和SDIO应用功能的数据流通道上的数据 并未真正加密或只是经过简单加密, 一旦闪存被从SD卡中取出或数据流通 道上的数据被截取,可以通过技术方法读取或破解其中的数据内容。

发明内容
本发明提供一种实时加密SD卡及高速加解密方法,目的旨在解决现有 SD卡数据流加解密速度慢、数据加密方式简单、加密手段有限等技术缺陷。 为达到上述目的,本发明实时加密SD卡采用的技术方案是 一种实时加密SD卡,包括
SD接口 ,该接口为用于连接SD主设备的符合SD规范的接口 ,实现从
SD主设备读出数据或向SD主设备写入数据;
SD卡应用模块,用于实现SD卡的数据存储或/和数据处理功能; SD卡控制器,用于控制所述SD卡与SD主设备之间的信息通讯; SD卡数据通道,用于传输SD主设备与SD卡应用模块之间的数据; 内部存储器,用于存储SD卡的固件或开机引导程序BootLoader; CPU,用于执行存储于内部存储器上的固件输入的指令,完成对SD卡的
控制和管理;
加密算法模块,用于加密从SD主设备读出的原文数据以及解密从SD卡 应用模块读出的密文数据,实现数据流的加解密;
FIFO緩存器,该緩存器具有第一FIFO緩存区、第二FIFO緩存区和第三 FIFO缓存区,在SD卡初始化时,SD接口的逻辑地址分配给第一FIFO緩存 区,加密算法模块的逻辑地址分配给第二FIFO缓存区,SD卡应用模块的逻 辑地址分配给第三FIFO緩存区;
FIFO控制器,由寄存器构成,该寄存器设有三个控制位,其中,第一控 制位使能后使得SD接口的逻辑地址与SD卡应用模块的逻辑地址进行交换, 第二控制位使能后使得SD接口的逻辑地址与加密算法模块的逻辑地址进行 交换,第三控制位使能后使得SD卡应用模块的逻辑地址与加密算法模块的 逻辑地址进行交换;
CPU分别与加密算法模块、FIFO控制器、内部存储器、FIFO緩存器、 SD接口 、 SD卡控制器和SD卡应用模块通过总线连接。
为达到上述目的,本发明实时加密SD卡的高速加解密方法采用的技术方 案是 一种实时加密SD卡的高速加解密方法,在SD主设备向SD卡应用模 块进行写梯:作或读4喿作过程中,利用FIFO控制器中第二控制位和第三控制 位的交替使能来切换SD接口 、加密算法模块和SD卡应用模块的逻辑地址, 与第一 FIFO緩存区、第二 FIFO緩存区和第三FIFO緩存区的物理地址之间 的映射关系,使第一FIFO緩存区、第二FIFO緩存区和第三FIFO緩存区轮 流跟随SD接口 、加密算法模块和SD卡应用模块并行工作,在SD主设备与 SD卡应用模块之间传递数据批次,其中,写操作时所述第二控制位和第三 控制位的交替使能从第二控制位开始,读操作时所述第二控制位和第三控制 位的交替使能从第三控制位开始。该方法在SD卡初始化时,第一FIFO緩存区、第二 FIFO緩存区和第三FIFO緩存区都为空;
当SD主设备向SD卡应用模块进行写操作时按以下步骤进行工作 步骤一SD主设备通过SD接口向第一 FIFO緩存区输入第一批原文数
据;
步骤二第二控制位使能,使得SD接口的逻辑地址与加密算法模块的逻 辑地址进行交换,然后SD主设备通过SD接口向第二FIFO緩存区输入第二 批原文数据,同时加密算法模块对第一 FIFO緩存区中的第一批原文数据进 行加密得到第 一批密文数据;
步骤三第三控制位先使能,使得SD卡应用模块的逻辑地址与加密算法 模块的逻辑地址进行交换,接着第二控制位再使能,使得SD接口的逻辑地 址与加密算法模块的逻辑地址进行交换,然后SD主设备通过SD接口向第 三FIFO緩存区输入第三批原文数据,加密算法模块对第二 FIFO缓存区中的 第二批原文数据进行加密得到第二批密文数据,同时第一FIFO緩存区向SD 卡应用模块输出第 一批密文数据;
步骤四第三控制位先使能,使得SD卡应用模块的逻辑地址与加密算法 模块的逻辑地址进行交换,接着第二控制位再使能,使得SD接口的逻辑地 址与加密算法模块的逻辑地址进行交换,然后SD主设备通过SD接口向第
一 FIFO緩存区输入第四批原文数据,加密算法才莫块对第三FIFO缓存区中的 第三批原文数据进行加密得到第三批密文数据,同时第二FIFO緩存区向SD 卡应用模块输出第二批密文数据;
步骤五第三控制位先使能,使得SD卡应用模块的逻辑地址与加密算法 模块的逻辑地址进行交换,接着第二控制位再使能,使得SD接口的逻辑地 址与加密算法模块的逻辑地址进行交换,然后SD主设备通过SD接口向第
二 FIFO緩存区输入第五批原文数据,加密算法模块对第一 FIFO緩存区中的 第四批原文数据进行加密得到第四批密文数据,同时第三FIFO緩存区向SD 卡应用模块输出第三批密文数据;然后返回到步骤三,以此构成循环,直到 最后 一批密文数据输出为止;
当SD主设备向SD卡应用模块进行读操作时按以下步骤进行工作 步骤一SD卡应用模块向第三FIFO緩存区输入第一批密文数据; 步骤二第三控制位使能,使得SD卡应用模块的逻辑地址与加密算法模 块的逻辑地址进行交换,然后SD卡应用模块向第二 FIFO緩存区输入第二批 密文数据,同时加密算法才莫块对第三FIFO缓存区中的第一批密文数据进行解密得到第 一批原文数据;
步骤三第二控制位先使能,使得SD接口的逻辑地址与加密算法模块的 逻辑地址进行交换,接着第三控制位再使能,使得SD卡应用模块的逻辑地 址与加密算法模块的逻辑地址进行交换,然后SD卡应用模块向第一 FIFO 緩存区输入第三批密文数据,加密算法模块对第二 FIFO緩存区中的第二批 密文数据进行解密得到第二批原文数据,同时第三FIFO緩存区通过SD接口 向SD主设备输出第 一批原文数据;
步骤四第二控制位先使能,使得SD接口的逻辑地址与加密算法模块的 逻辑地址进行交换,接着第三控制位再使能,使得SD卡应用模块的逻辑地 址与加密算法模块的逻辑地址进行交换,然后SD卡应用模块向第三FIFO 緩存区输入第四批密文数据,加密算法模块对第一 FIFO緩存区中的第三批 密文数据进行解密得到第三批原文数据,同时第二 FIFO緩存区通过SD接口 向SD主设备输出第二批原文数据;
步骤五第二控制位先使能,使得SD接口的逻辑地址与加密算法模块的 逻辑地址进行交换,接着第三控制位再使能,使得SD卡应用模块的逻辑地 址与加密算法模块的逻辑地址进行交换,然后SD卡应用模块向第二 FIFO 緩存区输入第五批密文数据,加密算法模块对第三FIFO緩存区中的第四批 密文数据进行解密得到第四批原文数据,同时第一 FIFO緩存区通过SD接口 向SD主设备输出第三批原文数据;然后返回到步骤三,以此构成循环,直 到最后 一批原文数据输出为止。
上述技术方案中的有关内容解释如下
1、上述方案中,所述"SD卡"是背景技术中所述SD存储卡、SDIO卡 和SD Combo卡的总称。所述"SD卡应用模块"对于SD存储卡来说指的是 闪存控制器和闪存,用于数据的存储;对于SDIO卡来说指的是SDIO功能 模块,用于实现某种特定功能,比如通过SD接口实现摄像功能、电视功能、 GPS功能等等;对于SD Combo卡来说指的是数据分流控制器、闪存控制器、 闪存和SDIO功能模块,既可以进行数据存储,又可以实现特定功能。所述 "SD卡控制器"对于SD存储卡来说指的是SD Memory控制器;对于SDIO 卡来说指的是SDIO控制器;对于SD Combo卡来说指的是SD Combo控制 器。所述"SD卡数据通道"对于SD存储卡来说指的是SD Memory数据通 道;对于SDIO卡来说指的是SDIO数据通道;对于SD Combo卡来说指的 是SD Memory数据通道和SDIO数据通道,两者在SD Combo卡形成并列的两条数据通道。
2、 上述方案中,所述"FIFO缓存器"是一种数据存储器,用于存储数据。 FIFO是英文First In First Out的缩写,是一种先进先出的数据緩存器,它与 普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点 就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动 加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的 地址。
3、 上述方案中,所述"固件,,(Firmware)就是写入ESROM或E^ROM(可 编程只读存储器)中的程序,通俗的理解就是"固化的软件"。与普通软件完 全不同,它是周化在集成电路内部的程序代码,负责控制和协调集成电路的 功能。
4、 上述方案中,所述"FIFO控制器"是用于管理SD接口、加密算法管 模块和SD卡应用模块所对应的FIFO緩存器,即FIFO緩存器中的第一 FIFO 緩存区、第二 FIFO緩存区和第三FIFO緩存区,完成数据的转移。FIFO控 制器中设有三个控制位,第一控制位用于SD主设备与SD卡应用模块之间 透明操作,使能该控制位后SD主设备与SD卡应用模块之间的数据流操作 不经过加密或解密,而是直接将SD主设备中的数据写入SD卡应用模块, 或直接从SD卡应用模块中读出数据。这个控制位一般在不需要对数据进行 加密的情况下使用。在需要对SD主设备与SD卡应用模块之间传输的数据 进行加密或解密时需要使用第二控制位和第三控制位。
5、 上述方案中,所述"加密算法模块"是用于加密原文数据或解密密文 数据的模块。加密算法模块采用的算法可包括RSA、 DES、 3DES、 SHA等 或自定义的编解码方式。
总之,本发明实时加密SD卡采用硬件加密算法模块对数据流进行加密, 保证了密匙与存储数据的空间隔离和对SD卡应用模块数据的完全加密;同 时采用FIFO控制器切换SD接口 、加密算法模块和SD卡应用模块的逻辑地 址,与第一FIFO緩存区、第二FIFO緩存区和第三FIFO緩存区的物理地址 之间的映射关系,达到SD接口、加密算法模块、SD卡应用模块数据流的并 行处理。当数据需要从SD主设备写到SD卡应用模块时,进行实时加密, 并将加密后的数据写入SD卡应用模块的存储区中;当数据需要被读取或使 用的时候,将根据配置调用相应的解密算法模块对需要读取的数据进行实时 解密,然后传送给SD主设备端使用。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果
1、 本发明克服了现有SD主设备与SD卡应用模块之间数据加解密速度 慢、数据加密方式简单、加密手段有限等技术缺陷。特别是本发明在实时加 密SD卡中利用FIFO控制器中第二控制位和第三控制位的交替使能来切换 SD接口、加密算法模块和SD卡应用模块的逻辑地址,与第一FIFO緩存区、 第二 FIFO緩存区和第三FIFO緩存区的物理地址之间的映射关系,使第一 FIFO緩存区、第二 FIFO緩存区和第三FIFO緩存区轮流跟随SD接口、加 密算法模块和SD卡应用模块并行工作,在SD主设备与SD卡应用模块之间 传递数据批次,从而提高了数据的加解密速度。
2、 本发明在保证数据加解密速度的同时,还可以建立三道安全屏障,其 一,由于实时加解密SD卡系统需要对特定的SD命令进行解析,进而完成 加解密流程,因此对于非加解密专用的SD读卡器来说,无法完成加解密的 命令认证流程;其二,由于存储设备上的操作系统也被加密,破解者会认为 得到的存储设备是一块没有被格式化的空盘;其三,即使非法得到存储设备 和专用加解密专用SD读卡器,如果没有密钥,也无法得到存储设备中的明 文数据。本发明使得信息隐藏级别高,增强了 SD卡系统数据的保密性。


附图1为实施例一实时加密SD存储卡的系统原理方框附图2为实施例一实时加密SD存储卡中FIFO控制器的寄存器原理示意
附图3为实施例二实时加密SDIO卡的系统原理方框图; 附图4为实施例二实时加密SDIO卡中FIFO控制器的寄存器原理示意图; 附图5为实施例三实时加密SD Combo卡的系统原理方框图; 附图6为实施例三实时加密SD Combo卡中FIFO控制器的寄存器原理示 意附图7为实施例一实时加密SD存储卡中的数据流向闪存写入时,第一 FIFO緩存区、第二 FIFO緩存区和第三FIFO緩存区轮流跟随SD接口、加 密算法模块和闪存控制器并行工作示意附图8为实施例一实时加密SD存储卡中的数据流从闪存读出时,第一 FIFO緩存区、第二 FIFO緩存区和第三FIFO緩存区轮流跟随SD接口、加 密算法模块和闪存控制器并行工作示意附图9为本发明工作流程示意图。以上附图中10、实时加密SD存储卡;20、 SD主设备;30、实时加密 SDIO卡;40、实时加密SDCombo卡;101、 FIFO控制器;102、加密算法 模块;103、内部存储器;104、 CPU; 105、 SD Memory控制器;106、 SD 接口; 107、闪存控制器;108、闪存;109、第一 FIFO緩存区;110、第二 FIFO緩存区;111、第三FIFO緩存区;112、 SD Combo控制器;113、 SDIO 功能才莫块;114、 SD Memory数据通道;115、 SDIO数据通道;116、 SDIO 控制器;117、数据分流控制器;201、第一控制位;202、第二控制位;203、 第三控制位。
具体实施例方式
下面结合附图及实施例对本发明作进一 步描述 实施例一 一种实时加密SD存储卡以及高速加解密方法 当SD主设备20向实时加密SD存储卡10写入数据是加密过程,从实时 加密SD存储卡10读出数据是解密过程。具体的加解密过程完全可以根据实 际应用的要求,由保存在内部存储器103中的固件进行控制。
图1为本发明实时加密SD存储卡10的系统原理方框图。从图1可以看 出,本发明实时加密SD存储卡10由SD接口 106、 SDMemory控制器105、 SD Memory数据通道114、闪存控制器107、闪存108、加密算法才莫块102、 内部存储器103、 CPU 104、 FIFO緩存器和FIFO控制器101组成,CPU 104 分别与加密算法模块102、 FIFO控制器101、内部存储器103、 FIFO緩存器、 SD接口 106、闪存控制器107和SD Memory控制器105通过总线连接。其 中
SD接口 106用于连接SD主设备20,实现从SD主设备20读出数据或向 SD主设备20写入数据。SD接口 106为符合SD规范的接口,它相对SD主 设备20为从设。
闪存108用于存储数据。
闪存控制器107用于控制闪存108的接口信号,实现从闪存108读出数 据或向闪存108写入^t据。
SD Memory控制器105用于控制SD存储卡10与SD主设备20之间的信
息通讯。
SD Memory数据通道114用于传输SD主设备20与闪存108之间的数据。 加密算法模块102用于加密从SD主设备20读出的原文数据以及解密从 闪存108读出的密文数据。这部分内容可以采用现有技术,比如本实施例中,加密算法;漠块102包括
1) 算法模块组。该算法模块组由至少一种算法模块组成,各算法模块用
于对数据进行不同算法的加解密运算,其中算法可包括RSA、 DES、 3DES、 SHA等或自定义的编解码方式。
2) 控制/状态寄存器组。该控制/状态寄存器组由控制寄存器和状态寄存 器组成,状态寄存器用于反映加密算法模块102的状态信息;控制寄存器用 于定义以下内容
A、 定义选择何种算法模块来进行加解密运算;
B、 定义加解密数据量;
C、 设置中断配置;
D、 定义启动算法模块进行加密解运算的使能。
3) 算法模块控制器。该算法模块控制器用于控制被选择算法模块的加解 密过程以及控制数据读写操作,在完成数据加解密之后,将中断信号传送给 中断控制器。所述算法模块控制器分别与算法模块组和控制/状态寄存器组双 向连接,控制/状态寄存器组与系统总线或外围总线双向连接。
内部存储器103用于存储实时加密SD存储卡10的固件或开机引导程序 BoolLoader。
CPU 104作为嵌入式中央处理器用于执行存储于内部存储器103上的固 件输入的指令,完成对实时加密SD存储卡10的控制和管理。
FIFO緩存器为对应SD接口 106、闪存控制器107和加密算法模块102 所设的数据存储器用于存储数据,FIFO是从一个固定地址读写的数据存储 器。在本发明中FIFO緩存器具有第一 FIFO緩存区109、第二FIFO緩存区 110和第三FIFO緩存区111,在实时加密SD存储卡10初始化时,SD接口 106的逻辑地址分配给第一 FIFO緩存区109,加密算法模块102的逻辑地址 分配给第二 FIFO緩存区110,闪存控制器107的逻辑地址分配给第三FIFO 緩存区111。
FIFO控制器101用于管理SD接口 106、闪存控制器107和加密算法模 块102所对应的FIFO緩存器,即FIFO緩存器中的第一 FIFO緩存区109、 第二FIFO緩存区110和第三FIFO緩存区111,完成凄t据的转移。FIFO控制 器101由寄存器构成,参见图2所示,该寄存器设有三个控制位,其中,第 一控制位201使能后使得SD接口 106的逻辑地址与闪存控制器107的逻辑 地址进行交换,第二控制位202使能后使得SD接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,第三控制位203使能后使得闪存控制器 107的逻辑地址与加密算法模块102的逻辑地址进行交换。第一控制位201 用于SD主设备20与闪存108之间透明操作,使能第一控制位201后SD主 设备20与闪存108之间的数据流操作不经过加密或解密,而是直接将SD主 设备20中的数据写入闪存108,或直接从闪存108中读出数据。这个控制位 一般在不需要对数据进行加密的情况下使用。在需要对SD主设备20与闪存 108之间传输的数据进行加密或解密时需要使用第二控制位202和第三控制 位203。
本实施例实时加密SD存储卡10的高速加解密方法是在SD主设备20 向闪存108进行写操作或读操作过程中,利用FIFO控制器101中第二控制 位202和第三控制位203的交替使能来切换SD接口 106、加密算法模块102 和闪存控制器107的逻辑地址,与第一 FIFO緩存区109、第二FIFO緩存区 110和第三FIFO緩存区111的物理地址之间的映射关系,使第一FIFO緩存 区109、第二FIFO緩存区IIO和第三FIFO緩存区lll轮流跟随SD接口 106、 加密算法模块102和闪存控制器107并行工作,在SD主设备20与闪存108 之间传递数据批次,其中,写操作时所述第二控制位202和第三控制位203 的交替使能从第二控制位202开始,读操作时所述第二控制位202和第三控 制位203的交替使能从第三控制位203开始。
图7和图8分别给出数据流写入和读出时第一FIFO緩存区109、第二FIFO 緩存区110和第三FIFO缓存区lll轮流跟随SD接口 106、加密算法模块102 和闪存控制器107并行工作示意图。下面将对图7和图8分别进行描述
如图7所示,在实时加密SD存储卡IO初始化时,第一FIFO緩存区109 指向SD接口 106的逻辑地址,第二FIFO緩存区110指向加密算法模块102 的逻辑地址,第三FIFO緩存区111指向闪存控制器107的逻辑地址。第一 FIFO緩存区109、第二FIFO緩存区110和第三FIFO缓存区lll都为空(图 中分别用"空白"表示)。
当SD主设备20向实时加密SD存储卡10进行写操作时按以下步骤进行 工作
步骤一SD主设备20通过SD接口 106向第一 FIFO緩存区109输入第 一批原文凝:据(图中第一FIFO緩存区109由"空白"变为"填充斜线"); 加密算法模块102不操作,第二FIFO緩存区110为空(图中用"空白,,表 示);闪存控制器107不操:作,第三FIFO缓存区111为空(图中用"空白,,表示)。
步骤二第二控制位202使能,使得SD接口 106的逻辑地址与加密算法 模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向加密算法 模块102,第二 FIFO緩存区110指向SD接口 106,然后SD主设备20通过 SD接口 106向第二 FIFO緩存区110输入第二批原文数据(图中第二FIFO 緩存区IIO由"空白"变为"填充斜线,,),同时加密算法模块102对第一 FIFO 緩存区109中的第一批原文数据进行加密得到第一批密文数据(图中第一 FIFO緩存区109由"填充斜线"变为"填充黑色")。闪存控制器107不操作, 第三FIFO緩存区111为空(图中用"空白,,表示)。
步骤三第三控制位203先使能,使得闪存控制器107的逻辑地址与加 密算法模块102的逻辑地址进行交换,接着第二控制位202再使能,使得SD 接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向闪存控制器107,第二FIFO緩存区110指向加密算法 模块102,第三FIFO緩存区111指向SD接口 106,然后SD主设备20通过 SD接口 106向第三FIFO緩存区111输入第三批原文数据(图中第三FIFO 緩存区111由"空白,,变为"填充斜线"),加密算法模块102对第二 FIFO 緩存区110中的第二批原文数据进行加密得到第二批密文数据(图中第二 FIFO緩存区110由"填充斜线"变为"填充黑色"),同时第一FIFO緩存区 109通过闪存控制器107向闪存108输出第 一批密文数据(图中第一 FIFO緩 存区109由"填充黑色"变为"空白")。
步骤四第三控制位203先使能,使得闪存控制器107的逻辑地址与加 密算法模块102的逻辑地址进行交换,接着第二控制位202再使能,使得SD 接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向SD接口 106,第二FIFO緩存区110指向闪存控制器 107,第三FIFO緩存区111指向加密算法模块102,然后SD主设备20通过 SD接口 106向第一FIFO緩存区109输入第四批原文数据(图中第一FIFO 緩存区109由"空白,,变为"填充斜线"),加密算法模块102对第三FIFO 缓存区111中的第三批原文数据进行加密得到第三批密文数据(图中第三 FIFO緩存区111由"填充斜线"变为"填充黑色"),同时第二FIFO緩存区 110通过闪存控制器107向闪存108输出第二批密文数据(图中第二 FIFO缓 存区110由"填充黑色"变为"空白")。
步骤五第三控制位203先使能,使得闪存控制器107的逻辑地址与加密算法模块102的逻辑地址进行交换,接着第二控制位202再使能,使得SD 接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向加密算法模块102,第二 FIFO緩存区110指向SD接 口 106,第三FIFO緩存区111指向闪存控制器107,然后SD主设备20通过 SD接口 106向第二 FIFO緩存区110输入第五批原文数据(图中第二FIFO 緩存区110由"空白"变为"填充斜线,,),加密算法模块102对第一 FIFO 緩存区109中的第四批原文数据进行加密得到第四批密文数据(图中第一 FIFO緩存区109由"填充斜线"变为"填充黑色"),同时第三FIFO緩存区 111通过闪存控制器107向闪存108输出第三批密文数据(图中第三FIFO緩 存区111由"填充黑色"变为"空白");然后返回到步骤三,以此构成循环, 直到最后 一批密文数据输出为止。
如图8所示,在实时加密SD存储卡10初始化时,第一FIFO緩存区109 指向SD接口 106的逻辑地址,第二FIFO緩存区110指向加密算法模块102 的逻辑地址,第三FIFO緩存区111指向闪存控制器107的逻辑地址。第一 FIFO緩存区109、第二FIFO缓存区110和第三FIFO緩存区lll都为空(图 中分别用"空白"表示)。
当SD主设备20向实时加密SD存储卡10进行读操作时按以下步骤进行 工作
步骤一闪存108通过闪存控制器107向第三FIFO緩存区111输入第一 批密文数据(图中第三FIFO緩存区111由"空白,,变为"填充黑色,,);加 密算法模块102不操作,第二 FIFO缓存区110为空(图中用"空白"表示); SD接口 106不操作,第一FIFO緩存区109为空(图中用"空白,,表示)。
步骤二第三控制位203使能,使得闪存控制器107的逻辑地址与加密 算法模块102的逻辑地址进行交换,此时,第二 FIFO緩存区110指向闪存 控制器107,第三FIFO緩存区111指向加密算法模块102,然后闪存108通 过闪存控制器107向第二 FIFO緩存区110输入第二批密文数据(图中第二 FIFO緩存区110由"空白,,变为"填充黑色,,),同时加密算法模块102对第 三FIFO緩存区111中的第一批密文数据进行解密得到第一批原文数据(图 中第三FIFO緩存区111由"填充黑色,,变为"填充斜线,,)。SD接口 106不 操作,第一FIFO緩存区109为空(图中用"空白"表示)。
步骤三第二控制位202先使能,使得SD接口 106的逻辑地址与加密算 法模块102的逻辑地址进行交换,接着第三控制位203再使能,使得闪存控制器107的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向闪存控制器107,第二FIFO緩存区IIO指向加密算法 模块102,第三FIFO緩存区111指向SD接口 106,然后闪存108通过闪存 控制器107向第一FIFO緩存区109输入第三批密文数据(图中第一FIFO緩 存区109由"空白"变为"填充黑色"),加密算法模块102对第二 FIFO緩 存区110中的第二批密文数据进行解密得到第二批原文数据(图中第二FIFO 緩存区110由"填充黑色"变为"填充斜线"),同时第三FIFO緩存区111 通过SD接口 106向SD主设备20输出第一批原文数据(图中第三FIFO緩 存区lll由"填充斜线"变为"空白")。
步骤四第二控制位202先使能,使得SD接口 106的逻辑地址与加密算 法模块102的逻辑地址进行交换,接着第三控制位203再使能,使得闪存控 制器107的逻辑地址与加密算法^^莫块102的逻辑地址进行交换,第一 FIFO 緩存区109指向加密算法模块102,第二FIFO緩存区IIO指向SD接口 106, 第三FIFO緩存区111指向闪存控制器107,然后闪存108通过闪存控制器 107向第三FIFO緩存区lll输入第四批密文数据(图中第三FIFO緩存区111 由"空白"变为"填充黑色"),加密算法模块102对第一 FIFO緩存区109 中的第三批密文数据进行解密得到第三批原文数据(图中第一 FIFO緩存区 109由"填充黑色"变为"填充斜线"),同时第二 FIFO緩存区110通过SD 接口 106向SD主设备20输出第二批原文数据(图中第二 FIFO緩存区110 由"填充斜线"变为"空白")。
步骤五第二控制位202先使能,使得SD接口 106的逻辑地址与加密算 法模块102的逻辑地址进行交换,接着第三控制位203再使能,使得闪存控 制器107的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向SD接口 106,第二FIFO緩存区110指向闪存控制器 107,第三FIFO緩存区111指向加密算法模块102,然后闪存108通过闪存 控制器107向第二 FIFO緩存区110输入第五批密文数据(图中第二 FIFO緩 存区110由"空白"变为"填充黑色"),加密算法模块102对第三FIFO缓 存区111中的第四批密文数据进行解密得到第四批原文数据(图中第三FIFO 緩存区111由"填充黑色"变为"填充斜线"),同时第一FIFO緩存区109 通过SD接口 106向SD主设备20输出第三批原文数据(图中第一FIFO緩 存区109由"填充斜线"变为"空白");然后返回到步骤三,以此构成循环, 直到最后 一批原文凄t据输出为止。图9为本发明工作流程示意图,从图9中看出本实施例实时加密SD存储 卡10的工作流程分为以下步骤 第一步SD存储卡进行初始化。
第二步判断是否是实时加密SD存储卡10,如果不是实时加密SD存储 卡则按普通SD卡工作流程执行;如果是实时加密SD存储卡执行第三步。 第三步进入数据加解密流程。
第四步实时加密SD存储卡IO对私有进行命令解析,对非数据操作命 令进行SD卡主设备20与实时加密SD存储卡10的信息通讯。
第五步判断是否有对数据的读写命令,如果没有发现数据读写命令, 则不会启动加/解密流程;如果发现数据读写命令,执行第六步。
第六步按以上方法对数据流进行加解密。
第七步判断是否完成数据传送操作,如果完成,执行第八步;如果没 有完成,则执行第四步。 第八步结束本次任务。
实施例二 一种实时加密SDIO卡以及高速加解密方法
图3为实时加密SDIO卡的系统原理方框图。从图3与图1的对比中可以
看出,本实施例实时加密SDIO卡30与实施例一中的实时加密SD存储卡10
在结构方面的区别在于
1、 将实施例一实时加密SD存^f诸卡10中的SD Memory控制器105改为 SDIO控制器116。 SDIO控制器116用于控制实时加密SDIO卡30与SD主 设备20之间的信息通讯。
2、 将实施例一实时加密SD存储卡10中的SD Memory数据通道114改 为SDIO数据通道115。 SDIO数据通道115用于传输SD主设备20与SDIO 功能模块113之间的数据。
3、 将实施例一实时加密SD存储卡10中的闪存控制器107和闪存108改 为SDIO功能模块113。 SDIO功能模块113用于实现特定功能,比如通过SD 接口实现摄像功能、电视功能、GPS功能等等。
其它结构及连接关系与实施例一相同,为节省篇幅,这里不再重复描述。 图4为实时加密SDIO卡中FIFO控制器的寄存器原理示意图。从图中可 以看出,FIFO控制器101的寄存器设有三个控制位,其中,第一控制位201 使能后使得SD接口 106的逻辑地址与SDIO模块113的逻辑地址进行交换, 第二控制位202使能后使得SD接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,第三控制位203使能后使得SDIO模块113的逻辑地址 与加密算法模块102的逻辑地址进行交换。第一控制位201用于SD主设备 20与SDIO模块113之间透明操作,使能第一控制位201后SD主设备20 与SDIO模块113之间的数据流操作不经过加密或解密,而是直接将SD主 设备20中的数据写入SDIO模块113,或直接从SDIO模块113中读出数据。 这个控制位一般在不需要对数据进行加密的情况下使用。在需要对SD主设 备20与SDIO模块113之间传输的数据进行加密或解密时需要使用第二控制 位202和第三控制位203。
本实施例实时加密SDIO卡的高速加解密方法与实施例一相同,只要在实 施例一高速加解密方法的基础上将上述结构方面的区别——替换,就可得到 本实施例实时加密SDIO卡的高速加解密方法。为节省篇幅,这里不再重复 描述。
实施例三 一种实时加密SD Combo卡以及高速加解密方法
SD卡是SD存储卡、SDIO卡和SD Combo卡的总称,其中SD存储卡用
于数据的存储,SDIO卡用于实现某种特定功能,而SD Combo卡既可以进
行数据存储,又可以实现特定功能,是SD存储卡和SDIO卡组合。
图5为实时加密SD Combo卡的系统原理方框图。从图5与图1和图3
的对比中可以看出,本实施例实时加密SD Combo卡40组合了实施例一和
实施例二的结构,其结构特点表现在以下几方面
1、 将图1中用于存储数据的闪存控制器107及闪存108与图2中用于实 现某种特定功能的SDIO功能模块113组合。为了解决数据分流问题设置了 数据分流控制器117,在数据分流控制器117的控制下数据将按照所经通道 的指向分流或交换数据。
2、 将图1中的SD Memory控制器105或者图2中的SDIO控制器116替 换为SD Combo控制器112。实际上SD Combo控制器112就是SD Memory 控制器105功能与SDIO控制器116功能的组合。
3、 将图1中的SD Memory数据通道114与图2中的SDIO数据通道115 并列组合。SD Memory数据通道114用于传输SD主设备20与闪存108之 间的数据,SDIO数据通道115用于传输SD主设备20与SDIO功能模块113 之间的数据。
其它结构及连接关系与实施例一和实施例二相同,为节省篇幅,这里不 再重复描述。图6为实时加密SD Combo卡中FIFO控制器的寄存器原理示意图。从图 中可以看出,FIFO控制器101的寄存器设有三个控制位,其中,第一控制位 201使能后使得SD接口 106的逻辑地址与数据分流控制器117的逻辑地址 进行交换,第二控制位202使能后使得SD接口 106的逻辑地址与加密算法 模块102的逻辑地址进行交换,第三控制位203使能后使得数据分流控制器 117的逻辑地址与加密算法模块102的逻辑地址进行交换。第一控制位201 用于SD主设备20与数据分流控制器117之间透明操作,使能第一控制位 201后SD主设备20与数据分流控制器117之间的数据流操作不经过加密或 解密,而是直接将SD主设备20中的数据写入数据分流控制器117,或直接 从数据分流控制器117中读出数据。这个控制位一般在不需要对数据进行加 密的情况下使用。在需要对SD主设备20与数据分流控制器117之间传输的 数据进行加密或解密时需要使用第二控制位202和第三控制位203。
本实施例实时加密SD Combo卡的高速加解密方法与实施例一相同,只 要在实施例一高速加解密方法的基础上将上述结构方面的区别——替换,就 可得到本实施例实时加密SDCombo卡的高速加解密方法。为节省篇幅,这 里不再重复描述。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项 技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保 护范围。凡根据本发明精神实质所作的等效变化或》务饰,都应涵盖在本发明 的保护范围之内。
权利要求
1、一种实时加密SD卡,包括SD接口(106),该接口为用于连接SD主设备(20)的符合SD规范的接口,实现从SD主设备(20)读出数据或向SD主设备(20)写入数据;SD卡应用模块,用于实现SD卡的数据存储或/和数据处理功能;SD卡控制器,用于控制所述SD卡与SD主设备(20)之间的信息通讯;SD卡数据通道,用于传输SD主设备(20)与SD卡应用模块之间的数据;内部存储器(103),用于存储SD卡的固件或开机引导程序(BootLoader);CPU(104),用于执行存储于内部存储器(103)上的固件输入的指令,完成对SD卡的控制和管理;其特征在于还包括加密算法模块(102),用于加密从SD主设备(20)读出的原文数据以及解密从SD卡应用模块读出的密文数据,实现数据流的加解密;FIFO缓存器,该缓存器具有第一FIFO缓存区(109)、第二FIFO缓存区(110)和第三FIFO缓存区(111),在SD卡初始化时,SD接口(106)的逻辑地址分配给第一FIFO缓存区(109),加密算法模块(102)的逻辑地址分配给第二FIFO缓存区(110),SD卡应用模块的逻辑地址分配给第三FIFO缓存区(111);FIFO控制器(101),由寄存器构成,该寄存器设有三个控制位,其中,第一控制位(201)使能后使得SD接口(106)的逻辑地址与SD卡应用模块的逻辑地址进行交换,第二控制位(202)使能后使得SD接口(106)的逻辑地址与加密算法模块(102)的逻辑地址进行交换,第三控制位(203)使能后使得SD卡应用模块的逻辑地址与加密算法模块(102)的逻辑地址进行交换;CPU(104)分别与加密算法模块(102)、FIFO控制器(101)、内部存储器(103)、FIFO缓存器、SD接口(106)、SD卡控制器和SD卡应用模块通过总线连接。
2、 根据权利要求1所述实时加密SD卡的高速加解密方法,其特征在于 在SD主设备(20 )向SD卡应用模块进行写操作或读操作过程中,利用FIFO 控制器(101)中第二控制位(202)和第三控制位(203 )的交替使能来切换 SD接口 (106)、加密算法模块(102)和SD卡应用模块的逻辑地址,与第一 FIFO緩存区(109)、第二FIFO緩存区(110)和第三FIFO緩存区(111)的 物理地址之间的映射关系, -使第一 FIFO緩存区(109 )、第二 FIFO緩存区(110 ) 和第三FIFO緩存区(111)轮流跟随SD接口 (106)、加密算法模块(102) 和SD卡应用模块并行工作,在SD主设备(20 )与SD卡应用模块之间传递数据批次,其中,写操作时所述第二控制位(202)和第三控制位(203 )的交替使能从第二控制位(202)开始,读操作时所述第二控制位(202)和第三控制位(203 )的交替使能从第三控制位(203 )开始。
3、根据权利要求2所述的高速加解密方法,其特征在于 在SD卡初始化时,第一FIFO緩存区(109)、第二FIFO緩存区(IIO)和第三FIFO緩存区(lll)都为空;当SD主设备(20)向SD卡应用模块进行写操作时按以下步骤进行工作 步骤一SD主设备(20)通过SD接口 ( 106 )向第一 FIFO緩存区(109)输入第一批原文数据;步骤二第二控制位(202)使能,使得SD接口 (106)的逻辑地址与加密算法模块(102 )的逻辑地址进行交换,然后SD主设备(20 )通过SD接口 (106)向第二FIFO緩存区(110)输入第二批原文数据,同时加密算法模块 (102)对第一 FIFO緩存区(109)中的第一批原文数据进行加密得到第一批密文数据;步骤三第三控制位(203 )先使能,使得SD卡应用模块的逻辑地址与加 密算法模块(102)的逻辑地址进行交换,接着第二控制位(202)再使能,使 得SD接口 (106)的逻辑地址与加密算法模块(102)的逻辑地址进行交换, 然后SD主设备(20 )通过SD接口 ( 106 )向第三FIFO緩存区(111 )输入 第三批原文数据,加密算法模块(102)对第二 FIFO緩存区(110)中的第二 批原文数据进行加密得到第二批密文数据,同时第一 FIFO緩存区(109)向 SD卡应用模块输出第 一批密文数据;步骤四第三控制位(203 )先使能,使得SD卡应用模块的逻辑地址与加 密算法模块(102)的逻辑地址进行交换,接着第二控制位(202)再使能,使 得SD接口 (106)的逻辑地址与加密算法模块(102)的逻辑地址进行交换, 然后SD主设备(20 )通过SD接口 ( 106 )向第一 FIFO緩存区(109 )输入 第四批原文数据,加密算法模块(102)对第三FIFO緩存区(111)中的第三 批原文数据进行加密得到第三批密文数据,同时第二 FIFO緩存区(110)向 SD卡应用模块输出第二批密文数据;步骤五第三控制位(203 )先使能,使得SD卡应用模块的逻辑地址与加 密算法模块(102)的逻辑地址进行交换,接着第二控制位(202)再使能,使 得SD接口 (106)的逻辑地址与加密算法模块(102)的逻辑地址进行交换, 然后SD主设备(20 )通过SD接口 ( 106 )向第二 FIFO緩存区(110 )输入第五批原文数据,加密算法模块(102)对第一FIFO緩存区(109)中的第四 批原文数据进行加密得到第四批密文数据,同时第三FIFO緩存区(111)向 SD卡应用模块输出第三批密文数据;然后返回到步骤三,以此构成循环,直 到最后 一批密文数据输出为止;当SD主设备(20)向SD卡应用模块进行读操作时按以下步骤进行工作 步骤一SD卡应用模块向第三FIFO緩存区(111 )输入第一批密文数据; 步骤二第三控制位(203)使能,使得SD卡应用模块的逻辑地址与加密 算法模块(102 )的逻辑地址进行交换,然后SD卡应用模块向第二 FIFO緩存 区(110)输入第二批密文数据,同时加密算法模块(102)对第三FIFO緩存 区(111)中的第一批密文数据进行解密得到第一批原文数据;步骤三第二控制位(202)先使能,使得SD接口 (106)的逻辑地址与 加密算法模块(102)的逻辑地址进行交换,接着第三控制位(203)再使能, 使得SD卡应用模块的逻辑地址与加密算法模块(102)的逻辑地址进行交换, 然后SD卡应用模块向第一FIFO緩存区(109)输入第三批密文数据,加密算 法模块(102)对第二FIFO緩存区(110)中的第二批密文数据进行解密得到 第二批原文数据,同时第三FIFO緩存区(111 )通过SD接口 (106)向SD 主设备(20)输出第一批原文数据;步骤四第二控制位(202)先使能,使得SD接口 (106)的逻辑地址与 加密算法模块(102)的逻辑地址进行交换,接着第三控制位(203 )再使能, 使得SD卡应用模块的逻辑地址与加密算法模块(102)的逻辑地址进行交换, 然后SD卡应用模块向第三FIFO緩存区(111)输入第四批密文数据,加密算 法模块(102)对第一FIFO緩存区(109)中的第三批密文数据进行解密得到 第三批原文数据,同时第二 FIFO緩存区(110)通过SD接口 (106)向SD 主设备(20)输出第二批原文数据;步骤五第二控制位(202)先使能,使得SD接口 (106)的逻辑地址与 加密算法模块(102)的逻辑地址进行交换,接着第三控制位(203 )再使能, 使得SD卡应用模块的逻辑地址与加密算法模块(102)的逻辑地址进行交换, 然后SD卡应用模块向第二FIFO緩存区(IIO)输入第五批密文数据,加密算 法模块(102)对第三FIFO緩存区(111)中的第四批密文数据进行解密得到 第四批原文数据,同时第一 FIFO緩存区(109)通过SD接口 (106)向SD 主设备(20)输出第三批原文数据;然后返回到步骤三,以此构成循环,直到 最后 一批原文数据输出为止。
全文摘要
一种实时加密SD卡及高速加解密方法,SD卡包括SD接口(106)、SD卡应用模块、SD卡控制器、SD卡数据通道、加密算法模块(102)、内部存储器(103)、CPU(104)、FIFO缓存器、FIFO控制器(101)。本发明利用FIFO控制器(101)中第二控制位(202)和第三控制位(203)的交替使能来切换SD接口(106)、加密算法模块(102)和SD卡应用模块的逻辑地址,与第一FIFO缓存区(109)、第二FIFO缓存区(110)和第三FIFO缓存区(111)的物理地址之间的映射关系,使第一FIFO缓存区(109)、第二FIFO缓存区(110)和第三FIFO缓存区(111)轮流跟随SD接口(106)、加密算法模块(102)和SD卡应用模块并行工作,在SD主设备(20)与SD卡应用模块之间传递数据批次,从而提高了数据的加解密速度。
文档编号G06K19/07GK101561888SQ200910027570
公开日2009年10月21日 申请日期2009年5月12日 优先权日2009年5月12日
发明者林雄鑫, 王忠海, 肖佐楠, 茳 郑 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1