实时加密u盘及高速加解密方法

文档序号:6753235阅读:350来源:国知局
专利名称:实时加密u盘及高速加解密方法
技术领域
本发明涉及一种实时加密U盘及高速加解密方法,特别涉及U盘内加解 密芯片的设计以及提高芯片数据加解密速度的方法,属于信息安全加密技术 领域。
背景技术
如今移动存储设备被广泛使用,u盘以其便携的特点在涉密系统中也有
普遍使用。对移动存储设备的数据进行加密可以有效保障数字资产信息的安 全,使其不被非法用户获取,这已经成为共识。
如今,随着需要处理的数据量的指数级增加,u盘上需要存储的数据量 也在同比增长,这一方面对u盘的加密手段和方式提出更高要求,同时也对 u盘的加解密速度提出了严峻挑战。目前,u盘数据加密速度慢的原因主要 在于,现有u盘加密在系统结构上没有做到数据流读写过程与加解密过程的 并行处理,因此在u盘闪存的数据线上体现为数据流有"断流"的情况。在
加密方式和手段上,现有数据加密方法多偏重于软件管理方法,软件管理方 法的缺点在于保存在u盘闪存上的数据并未真正加密或只是经过简单加密,
一旦u盘闪存被从u盘中取出,可以通过技术方法读取或破解上面的数据内容。
以上问题对于要将大数据量存储到u盘、需要更多加密手段和更灵活方 式的现实需求来说,对加密u盘的数据加解密传输速度、加密手段和方式都
提出了更高的要求。

发明内容
本发明提供一种实时加密u盘及高速加解密方法,目的旨在解决现有u 盘设备数据加解密速度慢、数据加密方式简单、加密手段有限等技术缺陷。
为达到上述目的,本发明实时加密U盘采用的技术方案是 一种实时加 密U盘,包括
USB接口 ,该接口为用于连接主机的USB接口 ,实现从主机读出数据或 向主机写入数据;
闪存,用于存储数据;
闪存控制器,用于控制闪存的接口信号,实现从闪存读出数据或向闪存 写入数据;
内部存储器,用于存储所述实时加密U盘的固件或开机引导程序
6(BootLoader);
CPU,用于执行存储于内部存储器上的固件输入的指令,完成对所述实 时加密U盘的控制和管理;
加密算法模块,用于加密从主机读出的原文数据以及解密从闪存读出的 密文数据,实现数据流的高速加解密;
FIFO缓存器,该緩存器具有第一FIFO緩存区、第二FIFO緩存区和第三 FIFO緩存区,在所述实时加密U盘初始化时,USB接口的逻辑地址分配给 第一FIFO緩存区,加密算法模块的逻辑地址分配给第二FIFO緩存区,闪存 控制器的逻辑地址分配给第三FIFO緩存区;
FIFO控制器,由寄存器构成,该寄存器设有三个控制位,其中,第一控 制位使能后使得USB接口的逻辑地址与闪存控制器的逻辑地址进行交换,第 二控制位使能后使得USB接口的逻辑地址与加密算法模块的逻辑地址进行 交换,第三控制位使能后使得闪存控制器的逻辑地址与加密算法模块的逻辑 地址进4于交换;
CPU分别与加密算法模块、FIFO控制器、内部存储器、FIFO緩存器、 USB接口和闪存控制器通过总线连接。
为达到上述目的,本发明高速加解密方法采用的技术方案是 一种实时 加密U盘的高速加解密方法,在主机向闪存进行写操作或读操作过程中,利 用FIFO控制器中第二控制位和第三控制位的交替使能来切换USB接口、加 密算法模块和闪存控制器的逻辑地址,与第一FIFO緩存区、第二FIFO緩存 区和第三FIFO緩存区的物理地址之间的映射关系,使第一FIFO緩存区、第 二 FIFO緩存区和第三FIFO緩存区轮流跟随USB接口 、加密算法模块和闪 存控制器并行工作,在主机与闪存之间传递数据批次,其中,写操作时所述 第二控制位和第三控制位的交替使能从第二控制位开始,读操作时所述第二 控制位和第三控制位的交替使能从第三控制位开始。
上述技术方案中的有关内容解释如下
1 、上述方案中,所述"USB接口 "为USB接口 。 USB的全称是Universal Serial Bus, USB支持热插拔,即插即用的优点,所以USB接口已经成为一 种标准的接口方式。USB有两个规范,即USB1.1和USB2.0。 USB1.1是目 前较为普遍的USB规范,USB2.0规范是由USB1.1规范演变而来的。它的 传输速率达到了 480Mbps,折算为MB为60MB/s,足以满足大多数外设的 速率要求。在本发明中,USB接口用于连接主机,USB接口选择USBl.l或USB2.0均可以使用,其中USB2.0更好。
2、 上述方案中,所述"一种实时加密U盘"还可以设有通讯I/0才莫块, 通讯I/O才莫块通过总线与所述CPU双向连接,外部通讯设备可以通过通讯I/O 模块与实时加密U盘双向连接。实时加解密过程完全可以根据实际应用的要 求,由保存在内部存储器中的信息或由外部通讯设备通过通讯I/O模块进行 控制,内部存储器中的信息可由外部通讯设备通过通讯I/O才莫块进行更新, 实现了多种且灵活的加密手段。
3、 上述方案中,所述"FIFO緩存器"是一种数据存储器,用于存储数据。 FIFO是英文First In First Out的缩写,是一种先进先出的数据緩存器,它与 普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点 就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动 加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的 地址。
4、 上述方案中,所述"固件"(Firmware)就是写入E2ROM或E2pROM(可 编程只读存储器)中的程序,通俗的理解就是"固化的软件"。与普通软件完 全不同,它是固化在集成电路内部的程序代码,负责控制和协调集成电路的 功能。
5、 上述方案中,所述"FIFO控制器,,是用于管理USB接口、加密算法 管模块和闪存控制器所对应的FIFO緩存器,即FIFO緩存器中的第一 FIFO 缓存区、第二 FIFO緩存区和第三FIFO緩存区,完成数据的转移。FIFO控 制器中设有三个控制位,第一控制位用于主机与闪存之间透明操作,即使能 该控制位后主机与闪存之间的数据流操作不经过加密或解密,而是直接将主 机中的数据写入闪存,或直接从闪存中读出数据。这个控制位一般在不需要 对数据进行加密的情况下使用。在需要对主机与闪存之间传输的数据进行加 密或解密时需要使用第二控制位和第三控制位。
6、 上述方案中,所述"加密算法模块,,是用于加密原文数据或解密密文 数据的模块。加密算法模块采用的算法可包括RSA、 DES、 3DES、 SHA等 或自定义的编解码方式。加密算法还可以通过通讯1/0模块从外部来补充。
总之,本发明实时加密U盘釆用硬件加密算法模块对数据流进行加密, 保证了密匙与存储数据的空间隔离和对闪存内数据的完全加密;同时采用 FIFO控制器切换USB接口 、加密算法模块和闪存控制器的逻辑地址,与第 一 FIFO緩存区、第二 FIFO緩存区和第三FIFO緩存区的物理地址之间的映射关系,达到USB接口、加密算法模块、闪存控制器数据流的并行处理。当
数据需要从主机写到闪存时,进行实时加密,并将加密后的数据写入闪存的
存储区中;当数据需要被读取或使用的时候,将根据配置调用相应的解密算 法模块对需要读取的数据进行实时解密,然后传送给主机端使用。
由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果
1、 本发明克服了现有主机与U盘之间数据加解密速度慢、数据加密方式 简单、加密手段有限等技术缺陷。特别是本发明在实时加密U盘中利用FIFO 控制器中第二控制位和第三控制位的交替使能来切换USB接口 、加密算法模 块和闪存控制器的逻辑地址,与第一FIFO缓存区、第二FIFO緩存区和第三 FIFO緩存区的物理地址之间的映射关系,使第一FIFO缓存区、第二FIFO 緩存区和第三FIFO緩存区轮流跟随USB接口 、加密算法模块和闪存控制器 并行工作,在主机与闪存之间传递数据批次,从而提高了数据的加解密速度。
2、 本发明在保证数据加解密速度的同时,还可以建立两道安全屏障,其 一由于闪存的操作系统也被加密,得到实时加密U盘者会误认为U盘是空盘, 存入信息可以隐藏;其二,即使非法得到实时加密U盘,如果没有密钥也无 法读取U盘中的明文数据。
3、 由于本发明实时加密U盘增加了通讯I/C^莫块可以与外部设备进行通 讯,进而为实时加密U盘的安全处理方式提供了多种可能,增强了数据信息 的保密性。


附图1为本发明实时加密U盘的系统原理方框附图2为本发明FIFO控制器的寄存器原理示意附图3为本发明实时加密U盘中的数据流向闪存写入时,第一 FIFO緩存 区、第二 FIFO緩存区和第三FIFO緩存区轮流跟随USB接口、加密算法模 块和闪存控制器并行工作示意附图4为本发明实时加密U盘中的数据流从闪存读出时,第一FIFO緩存 区、第二 FIFO緩存区和第三FIFO緩存区轮流跟随USB接口、加密算法模 块和闪存控制器并行工作示意图。
以上附图中10、实时加密U盘;20、主机;30、外部通讯i殳备;101、 FIFO控制器;102、加密算法模块;103、内部存储器;104、 CPU; 105、通 讯I/0模块;106、 USB接口; 107、闪存控制器;108、闪存;109、第一FIFO 緩存区;110、第二FIFO緩存区;111、第三FIFO緩存区;201、第一控制203、第三控制位。
具体实施例方式
下面结合附图及实施例对本发明作进一步描述 实施例 一种实时加密U盘
当主机20向实时加密U盘10写入数据是加密过程,从实时加密U盘10 读出数据是解密过程。具体的加解密过程完全可以根据实际应用的要求,由 保存在内部存储器103中的固件或由外部通讯设备30进行控制。
图1为本发明实时加密U盘的系统原理方框图。从图l可以看出,本发 明实时加密U盘由USB接口 106、闪存控制器107、加密算法4莫块102、内 部存储器103、 CPU 104、 FIFO緩存器、FIFO控制器101和通讯I/O模块105 组成,CPU 104分别与加密算法模块102、 FIFO控制器101、内部存储器 103、 FIFO緩存器、USB接口 106、闪存控制器107和通讯I/O模块105通 过总线连接。其中
USB接口 106用于连接主机20,实现/人主才几20读出数据或向主机20写 入数据。USB接口 106相对主机20为从设,可选择USB1.1接口或USB2.0 接口,但为了适应高速加解密釆用USB2.0接口更好。
闪存控制器107用于控制闪存108的接口信号,实现从闪存108读出数 据或向闪存108写入数据。
加密算法模块102用于加密从主机20读出的原文数据以及解密从闪存 108读出的密文数据。这部分内容可以采用现有技术,比如本实施例中,加 密算法模块102包括
1) 算法模块组。该算法模块组由至少一种算法模块组成,各算法模块用 于对数据进行不同算法的加解密运算,其中算法可包括RSA、 DES、 3DES、 SHA等或自定义的编解码方式。
2) 控制/状态寄存器组。该控制/状态寄存器组由控制寄存器和状态寄存 器组成,状态寄存器用于反映加密算法模块102的状态信息;控制寄存器用 于定义以下内容
A、 定义选择何种算法模块来进行加解密运算;
B、 定义加解密数据量;
C、 设置中断配置;
D、 定义启动算法模块进行加密解运算的使能。
3) 算法模块控制器。该算法模块控制器用于控制被选择算法模块的加解
10密过程以及控制数据读写操作,在完成数据加解密之后,将中断信号传送给 中断控制器。所述算法模块控制器分别与算法模块组和控制/状态寄存器组双 向连接,控制/状态寄存器组与系统总线或外围总线双向连接。
内部存储器103用于存储所述实时加密U盘10的固件或开机引导程序 (BootLoader )。
CPU 105作为嵌入式中央处理器用于执行存储于内部存储器103上的固 件或执行从通讯I/O模块105输入的指令,完成对实时加密U盘10的控制 和管理。
FIFO緩存器为对应USB接口 106、闪存控制器107和加密算法模块102 所设的数据存储器用于存储数据,FIFO是从一个固定地址读写的数据存储 器。本发明中FIFO緩存器具有第一 FIFO緩存区109、第二FIFO緩存区110 和第三FIFO緩存区111。在实时加密U盘10初始化时,USB接口 106的逻 辑地址分配给第一FIFO緩存区109,加密算法模块102的逻辑地址分配给第 二FIFO緩存区110,闪存控制器107的逻辑地址分配给第三FIFO緩存区111。
FIFO控制器101用于管理USB接口 106、闪存控制器107和加密算法模 块102所对应的FIFO缓存器,即FIFO緩存器中的第一 FIFO缓存区109、 第二FIFO緩存区110和第三FIFO緩存区111,完成数据的转移。FIFO控制 器101由寄存器构成,参见图2所示,该寄存器设有三个控制位,其中,第 一控制位201使能后使得USB接口 106的逻辑地址与闪存控制器107的逻辑 地址进行交换,第二控制位202使能后使得USB接口 106的逻辑地址与加密 算法模块102的逻辑地址进行交换,第三控制位203使能后使得闪存控制器 107的逻辑地址与加密算法模块102的逻辑地址进行交换。第一控制位201 用于主机20与闪存108之间透明操作,即使能第一控制位201后主机20与 闪存108之间的数据流搡作不经过加密或解密,而是直接将主机20中的数 据写入闪存108,或直接从闪存108中读出数据。这个控制位一般在不需要 对数据进行加密的情况下使用。在需要对主机20与闪存108之间传输的数 据进行加密或解密时需要使用第二控制位202和第三控制位203。
通讯I/O模块107用于与外部通讯设备30的通讯,实现从外部通讯设备 30上获取指令或下载数据。
本实施例实时加密U盘的高速加解密方法是在主机20向闪存108进行 写才喿作或读^燥作过程中,利用FIFO控制器101中第二控制位202和第三控 制位203的交替使能来切换USB接口 106、加密算法模块102和闪存控制器107的逻辑地址,与第一 FIFO緩存区109、第二 FIFO緩存区110和第三FIFO 緩存区111的物理地址之间的映射关系,使第一FIFO緩存区109、第二 FIFO 緩存区110和第三FIFO緩存区lll轮流跟随USB接口 106、加密算法模块 102和闪存控制器107并行工作,在主机20与闪存108之间传递数据批次, 其中,写操作时所述第二控制位202和第三控制位203的交替使能从第二控 制位202开始,读操作时所述第二控制位202和第三控制位203的交替使能 从第三控制位203开始。
图3和图4分别给出数据流写入和读出时第一 FIFO緩存区109 、第二 FIFO 緩存区110和第三FIFO緩存区lll轮流跟随USB接口 106、加密算法模块 102和闪存控制器107并行工作示意图。下面将对图3和图4分别进行描述
如图3所示,在实时加密U盘10初始化时,第一 FIFO緩存区109指向 USB接口 106的逻辑地址,第二FIFO緩存区110指向加密算法模块102的 逻辑地址,第三FIFO緩存区111指向闪存控制器107的逻辑地址。第一FIFO 緩存区109、第二FIFO緩存区110和第三FIFO緩存区111都为空(图中分 别用"空白"表示)。
当主机20向实时加密U盘10进行写操作时按以下步骤进行工作
步骤一主机20通过USB接口 106向第一 FIFO緩存区109输入第一批 原文数据(图中第一 FIFO緩存区109由"空白,,变为"填充斜线,,);加密 算法模块102不操作,第二FIFO緩存区IIO为空(图中用"空白,,表示); 闪存控制器107不操作,第三FIFO緩存区111为空(图中用"空白,,表示)。
步骤二第二控制位202使能,使得USB接口 106的逻辑地址与加密算 法模块102的逻辑地址进行交换,此时,第一 FIFO緩存区109指向加密算 法模块102,第二 FIFO緩存区110指向USB接口 106,然后主机20通过 USB接口 106向第二 FIFO緩存区110输入第二批原文数据(图中第二 FIFO 緩存区110由"空白,,变为"填充斜线,,),同时加密算法模块102对第一 FIFO 緩存区109中的第一批原文数据进行加密得到第一批密文数据(图中第一 FIFO緩存区109由"填充斜线"变为"填充黑色")。闪存控制器107不操作, 第三FIFO緩存区111为空(图中用"空白,,表示)。
步骤三第三控制位203先使能,使得闪存控制器107的逻辑地址与加 密算法模块102的逻辑地址进行交换,接着第二控制位202再使能,使得 USB接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,此时, 第一FIFO緩存区109指向闪存控制器107,第二FIFO緩存区110指向加密
12算法模块102,第三FIFO缓存区111指向USB接口 106,然后主机20通过 USB接口 106向第三FIFO缓存区111输入第三批原文数据(图中第三FIFO 緩存区111由"空白,,变为"填充斜线"),加密算法模块102对第二 FIFO 緩存区110中的第二批原文数据进行加密得到第二批密文^:据(图中第二 FIFO緩存区110由"填充斜线"变为"填充黑色"),同时第一FIFO缓存区 109通过闪存控制器107向闪存108输出第一批密文数据(图中第一FIFO緩 存区109由"填充黑色"变为"空白")。
步骤四第三控制位203先使能,使得闪存控制器107的逻辑地址与加 密算法模块102的逻辑地址进行交换,接着第二控制位202再使能,使得 USB接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,此时, 第一FIFO緩存区109指向USB接口 106,第二FIFO緩存区110指向闪存 控制器107,第三FIFO緩存区111指向加密算法才莫块102,然后主机20通 过USB接口 106向第一FIFO緩存区109输入第四批原文数据(图中第一FIFO 緩存区109由"空白,,变为"填充斜线,,),加密算法模块102对第三FIFO 緩存区111中的第三批原文数据进行加密得到第三批密文数据(图中第三 FIFO緩存区111由"填充斜线"变为"填充黑色"),同时第二FIFO緩存区 110通过闪存控制器107向闪存108输出第二批密文数据(图中第二 FIFO緩 存区110由"填充黑色"变为"空白")。
步骤五第三控制位203先使能,使得闪存控制器107的逻辑地址与加 密算法模块102的逻辑地址进行交换,接着第二控制位202再使能,使得 USB接口 106的逻辑地址与加密算法模块102的逻辑地址进行交换,此时, 第一 FIFO緩存区109指向加密算法模块102,第二 FIFO緩存区110指向 USB接口 106,第三FIFO緩存区111指向闪存控制器107,然后主机20通 过USB接口 106向第二FIFO緩存区110输入第五批原文数据(图中第二FIFO 緩存区110由"空白"变为"填充斜线,,),加密算法模块102对第一 FIFO 緩存区109中的第四批原文数据进行加密得到第四批密文数据(图中第一 FIFO緩存区109由"填充斜线"变为"填充黑色,,),同时第三FIFO緩存区 111通过闪存控制器107向闪存108输出第三批密文数据(图中第三FIFO缓 存区111由"填充黑色,,变为"空白");然后返回到步骤三,以此构成循环, 直到最后 一批密文数据输出为止。
如图4所示,在实时加密U盘10初始化时,第一 FIFO緩存区109指向 USB接口 106的逻辑地址,第二 FIFO缓存区110指向加密算法模块102的
13逻辑地址,第三FIFO缓存区111指向闪存控制器107的逻辑地址。第一FIFO 緩存区109、第二FIFO缓存区110和第三FIFO緩存区111都为空(图中分 别用"空白"表示)。
当主机20向实时加密U盘10进行读操作时按以下步骤进行工作
步骤一闪存108通过闪存控制器107向第三FIFO緩存区111输入第一 批密文数据(图中第三FIFO緩存区111由"空白"变为"填充黑色,,);加 密算法模块102不操作,第二FIFO緩存区110为空(图中用"空白"表示); USB接口 106不操作,第一 FIFO緩存区109为空(图中用"空白"表示)。
步骤二第三控制位203使能,使得闪存控制器107的逻辑地址与加密 算法模块102的逻辑地址进行交换,此时,第二 FIFO緩存区110指向闪存 控制器107,第三FIFO緩存区111指向加密算法模块102,然后闪存108通 过闪存控制器107向第二 FIFO緩存区110输入第二批密文^t据(图中第二 FIFO緩存区110由"空白"变为"填充黑色"),同时加密算法模块102对第 三FIFO緩存区111中的第一批密文数据进行解密得到第一批原文数据(图 中第三FIFO緩存区111由"填充黑色"变为"填充斜线,,)。USB接口 106 不操作,第一FIFO緩存区109为空(图中用"空白"表示)。
步骤三第二控制位202先使能,使得USB接口 106的逻辑地址与加密 算法模块102的逻辑地址进行交换,接着第三控制位203再使能,使得闪存 控制器107的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第 一FIFO緩存区109指向闪存控制器107,第二FIFO緩存区110指向加密算 法模块102,第三FIFO緩存区111指向USB接口 106,然后闪存108通过 闪存控制器107向第一FIFO緩存区109输入第三批密文凄t据(图中第一FIFO 缓存区109由"空白"变为"填充黑色,,),加密算法模块102对第二 FIFO 緩存区110中的第二批密文数据进行解密得到第二批原文数据(图中第二 FIFO緩存区110由"填充黑色"变为"填充斜线,,),同时第三FIFO緩存区 111通过USB接口 106向主机20输出第 一批原文数据(图中第三FIFO緩存 区111由"填充斜线"变为"空白")。
步骤四第二控制位202先使能,使得USB接口 106的逻辑地址与加密 算法模块102的逻辑地址进行交换,接着第三控制位203再使能,使得闪存 控制器107的逻辑地址与加密算法模块102的逻辑地址进行交换,第一 FIFO 緩存区109指向加密算法模块102,第二FIFO緩存区110指向USB接口 106, 第三FIFO緩存区111指向闪存控制器107,然后闪存108通过闪存控制器107向第三FIFO緩存区111输入第四批密文数据(图中第三FIFO緩存区111 由"空白,,变为"填充黑色"),加密算法才莫块102对第一 FIFO緩存区109 中的第三批密文数据进行解密得到第三批原文数据(图中第一 FIFO緩存区 109由"填充黑色,,变为"填充斜线"),同时第二FIFO緩存区110通过USB 接口 106向主机20输出第二批原文数据(图中第二FIFO緩存区110由"填 充斜线"变为"空白")。
步骤五第二控制位202先使能,使得USB接口 106的逻辑地址与加密 算法模块102的逻辑地址进行交换,接着第三控制位203再使能,使得闪存 控制器107的逻辑地址与加密算法模块102的逻辑地址进行交换,此时,第 一FIFO緩存区109指向USB接口 106,第二FIFO缓存区IIO指向闪存控 制器107,第三FIFO缓存区111指向加密算法模块102,然后闪存108通过 闪存控制器107向第二FIFO緩存区110输入第五批密文数据(图中第二FIFO 緩存区110由"空白,,变为"填充黑色,,),加密算法模块102对第三FIFO 缓存区111中的第四批密文数据进行解密得到第四批原文数据(图中第三 FIFO緩存区111由"填充黑色"变为"填充斜线"),同时第一FIFO緩存区 109通过USB接口 106向主机20输出第三批原文数据(图中第一 FIFO緩存 区109由"填充斜线,,变为"空白");然后返回到步骤三,以此构成循环, 直到最后 一批原文数据输出为止。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项 技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保 护范围。凡根据本发明精神实质所作的等效变化或^'务饰,都应涵盖在本发明 的保护范围之内。
权利要求
1、一种实时加密U盘,包括USB接口(106),该接口为用于连接主机(20)的USB接口,实现从主机(20)读出数据或向主机(20)写入数据;闪存(108),用于存储数据;闪存控制器(107),用于控制闪存(108)的接口信号,实现从闪存(108)读出数据或向闪存(108)写入数据;内部存储器(103),用于存储所述实时加密U盘(10)的固件或开机引导程序(BootLoader);CPU(104),用于执行存储于内部存储器(103)上的固件输入的指令,完成对所述实时加密U盘(10)的控制和管理;其特征在于还包括加密算法模块(102),用于加密从主机(20)读出的原文数据以及解密从闪存(108)读出的密文数据,实现数据流的高速加解密;FIFO缓存器,该缓存器具有第一FIFO缓存区(109)、第二FIFO缓存区(110)和第三FIFO缓存区(111),在所述实时加密U盘(10)初始化时,USB接口(106)的逻辑地址分配给第一FIFO缓存区(109),加密算法模块(102)的逻辑地址分配给第二FIFO缓存区(110),闪存控制器(107)的逻辑地址分配给第三FIFO缓存区(111);FIFO控制器(101),由寄存器构成,该寄存器设有三个控制位,其中,第一控制位(201)使能后使得USB接口(106)的逻辑地址与闪存控制器(107)的逻辑地址进行交换,第二控制位(202)使能后使得USB接口(106)的逻辑地址与加密算法模块(102)的逻辑地址进行交换,第三控制位(203)使能后使得闪存控制器(107)的逻辑地址与加密算法模块(102)的逻辑地址进行交换;CPU(104)分别与加密算法模块(102)、FIFO控制器(101)、内部存储器(103)、FIFO缓存器、USB接口(106)和闪存控制器(107)通过总线连接。
2、 根据权利要求1所述的实时加密U盘,其特征在于还包括通讯I/O模 块(105),通讯I/0模块(105)通过总线与所述CPU (104)连接。
3、 根据权利要求1所述实时加密U盘的高速加解密方法,其特征在于 在主机(20)向闪存(108)进行写4喿作或读才喿作过程中,利用FIFO控制器(101 )中第二控制位(202)和第三控制位(203 )的交替使能来切换USB接口 (106)、加密算法模块(102)和闪存控制器(107)的逻辑地址,与第一 FIFO缓存区(109)、第二FIFO緩存区(110)和第三FIFO緩存区(111)的 物理地址之间的映射关系,使第一 FIFO緩存区(109 )、第二 FIFO缓存区(110 ) 和第三FIFO緩存区(111)轮流跟随USB接口 (106)、加密算法模块(102) 和闪存控制器(107)并行工作,在主机(20)与闪存(108)之间传递数据批 次,其中,写操作时所述第二控制位(202)和第三控制位(203 )的交替使能 从第二控制位(202 )开始,读操作时所述第二控制位(202 )和第三控制位(203 ) 的交替使能从第三控制位(203 )开始。
4、根据权利要求3所述的高速加解密方法,其特征在于 在所述实时加密U盘(10)初始化时,第一 FIFO緩存区(109)、第二FIFO 緩存区(110)和第三FIFO緩存区(111 )都为空;当主机(20)向闪存(108)进行写操作时按以下步骤进行工作 步骤一主机(20)通过USB接口 (106)向第一FIFO緩存区(109)输 入第一批原文数据;步骤二第二控制位(202)使能,使得USB接口 (106)的逻辑地址与加 密算法模块(102 )的逻辑地址进行交换,然后主机(20 )通过USB接口 ( 106 ) 向第二FIFO緩存区(110)输入第二批原文数据,同时加密算法模块(102) 对第一 FIFO緩存区(109)中的第一批原文数据进行加密得到第一批密文数 据;步骤三第三控制位(203 )先使能,使得闪存控制器(107)的逻辑地址 与加密算法模块(102 )的逻辑地址进行交换,接着第二控制位(202 )再使能, 使得USB接口 (106)的逻辑地址与加密算法^^块(102)的逻辑地址进行交 换,然后主机(20)通过USB接口 (106)向第三FIFO緩存区(111)输入第 三批原文数据,加密算法模块(102)对第二FIFO緩存区(110)中的第二批 原文数据进行加密得到第二批密文数据,同时第一 FIFO緩存区(109)通过 闪存控制器(107)向闪存(108)输出第一批密文数据;步骤四第三控制位(203 )先使能,使得闪存控制器(107)的逻辑地址 与加密算法模块(102 )的逻辑地址进行交换,接着第二控制位(202 )再使能, 使得USB接口 (106)的逻辑地址与加密算法模块(102)的逻辑地址进行交 换,然后主机(20)通过USB接口 (106)向第一 FIFO緩存区(109)输入 第四批原文数据,加密算法模块(102)对第三FIFO緩存区(111)中的第三 批原文数据进行加密得到第三批密文数据,同时第二 FIFO緩存区(110)通过闪存控制器(107)向闪存(108)输出第二批密文数据;步骤五第三控制位(203 )先使能,使得闪存控制器(107)的逻辑地址 与加密算法模块(102 )的逻辑地址进行交换,接着第二控制位(202 )再使能, 使得USB接口 (106)的逻辑地址与加密算法模块(102)的逻辑地址进行交 换,然后主机(20)通过USB接口 ( 106)向第二 FIFO緩存区(110)输入第 五批原文数据,加密算法模块(102)对第一FIFO緩存区(109)中的第四批 原文数据进行加密得到第四批密文数据,同时第三FIFO缓存区(111 )通过闪 存控制器(107)向闪存(108)输出第三批密文数据;然后返回到步骤三,以 此构成循环,直到最后一批密文数据输出为止;当主机(20)向闪存(108)进行读操作时按以下步骤进行工作 步骤一闪存(108)通过闪存控制器(107)向第三FIFO緩存区(111) 输入第一批密文数据;步骤二第三控制位(203 )使能,使得闪存控制器(107)的逻辑地址与 加密算法模块(102)的逻辑地址进行交换,然后闪存(108)通过闪存控制器 (107)向第二FIFO緩存区(110)输入第二批密文数据,同时加密算法才莫块 (102)对第三FIFO緩存区(111)中的第一批密文数据进行解密得到第一批 原文数据;步骤三第二控制位(202)先使能,使得USB接口 (106)的逻辑地址与 加密算法模块(102)的逻辑地址进行交换,接着第三控制位(203 )再使能, 使得闪存控制器(107)的逻辑地址与加密算法模块(102)的逻辑地址进行交 换,然后闪存(108)通过闪存控制器(107)向第一 FIFO緩存区(109)输 入第三批密文数据,加密算法模块(102)对第二FIFO緩存区(110)中的第 二批密文数据进行解密得到第二批原文数据,同时第三FIFO缓存区(111 )通 过USB接口 (106)向主机(20)输出第一批原文数据;步骤四第二控制位(202)先使能,使得USB接口 (106)的逻辑地址与 加密算法模块(102)的逻辑地址进行交换,接着第三控制位(203 )再使能, 使得闪存控制器(107)的逻辑地址与加密算法模块(102)的逻辑地址进行交 换,然后闪存(108)通过闪存控制器(107)向第三FIFO緩存区(111)输入 第四批密文数据,加密算法模块(102)对第一FIFO缓存区(109)中的第三 批密文数据进行解密得到第三批原文数据,同时第二 FIFO緩存区(110)通 过USB接口 (106)向主机(20)输出第二批原文数据;步骤五第二控制位(202)先使能,使得USB接口 (106)的逻辑地址与加密算法模块(102)的逻辑地址进行交换,接着第三控制位(203 )再使能, 使得闪存控制器(107)的逻辑地址与加密算法模块(102)的逻辑地址进行交 换,然后闪存(108)通过闪存控制器(107)向第二 FIFO緩存区(110)输 入第五批密文数据,加密算法模块(102)对第三FIFO緩存区(111)中的第 四批密文数据进行解密得到第四批原文数据,同时第一 FIFO緩存区(109) 通过USB接口 (106)向主机(20)输出第三批原文数据;然后返回到步骤三, 以此构成循环,直到最后一批原文数据输出为止。
全文摘要
一种实时加密U盘及高速加解密方法,包括USB接口(106)、闪存(108)、闪存控制器(107)、加密算法模块(102)、内部存储器(103)、CPU(104)、FIFO缓存器、FIFO控制器(101)。本发明利用FIFO控制器(101)中第二控制位(202)和第三控制位(203)的交替使能来切换USB接口(106)、加密算法模块(102)和闪存控制器(107)的逻辑地址,与第一FIFO缓存区(109)、第二FIFO缓存区(110)和第三FIFO缓存区(111)的物理地址之间的映射关系,使第一FIFO缓存区(109)、第二FIFO缓存区(110)和第三FIFO缓存区(111)轮流跟随USB接口(106)、加密算法模块(102)和闪存控制器(107)并行工作,在主机(20)与闪存(108)之间传递数据批次,从而提高了数据的加解密速度。
文档编号G11C7/10GK101540191SQ20091003068
公开日2009年9月23日 申请日期2009年4月21日 优先权日2009年4月21日
发明者林雄鑫, 王忠海, 肖佐楠, 茳 郑 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1