一种用于USB储存设备中加密数据的解密方法.pdf

上传人:00062****4422 文档编号:1027730 上传时间:2018-03-26 格式:PDF 页数:14 大小:466.87KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010551241.7

申请日:

2010.11.19

公开号:

CN102023936A

公开日:

2011.04.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/14申请日:20101119|||公开

IPC分类号:

G06F12/14

主分类号:

G06F12/14

申请人:

苏州国芯科技有限公司

发明人:

郑茳; 肖佐楠; 匡启和; 王廷平; 尤国芳

地址:

215011 江苏省苏州市高新区竹园路209号苏州创业园3号楼2301

优先权:

专利代理机构:

苏州创元专利商标事务所有限公司 32103

代理人:

马明渡

PDF下载: PDF下载
内容摘要

一种用于USB储存设备中加密数据的解密方法,将转接装置设置于主机与U盘之间,其第一数据存储区、第二数据存储区、第三数据存储区和第四数据存储区沿顺时针方向排列;配置主机指针、U盘指针和解密指针,所述主机指针;U盘指针沿顺时针方向指向下一个数据缓存区,同时,加密指针沿顺时针方向指向下一个数据缓存区,同时,主机指针沿顺时针方向指向下一个数据缓存区;转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针所指的数据缓冲区内数据传输给主机。本发明实现了明文数据、密文数据和加密算法的分离,且提高了主机与移动存储设备之间数据解密速度。

权利要求书

1: 一种用于 USB 储存设备中加密数据的解密方法,其特征在于 : 包括以下步骤 : 步骤 1. 将转接装置设置于主机与 U 盘之间,此转接装置的从端口 (USB Dev) 与 主机的主端口连接,转接装置的主端口 (USB Host) 与 U 盘的端口连接,转接装置的解 密模块用于解密主机与 U 盘之间的传输数据,此转接装置内设置有四个数据缓存区,且 其第一数据存储区、第二数据存储区、第三数据存储区和第四数据存储区沿顺时针方向 排列 ; 步骤 2.转接装置的从端口收到来自主机的读指令和数据单元长度,并将此读指令和 数据单元长度转发给 U 盘 ; 步骤 3. 配置主机指针 (usbDevicePos)、 U 盘指针 (usbHostPos) 和解密指针 (encrPos),所述主机指针 (usbDevicePos),用于标识主机读取数据的数据存储区的 地址,所述 U 盘指针 (usbHostPos),用于标识接收来自 U 盘的数据的数据存储区的地 址,所述加密指针 (encrPos),用于标识解密模块待处理数据的数据存储区的地址 ; 步 骤 4. 初 始 化 时 将 U 盘 指 针 (usbHostPos) 指 向 第 二 数 据 缓 存 区 (第 二 FIFO2),主机指针 (usbDevicePos)和加密指针 (encrPos)指向第一数据缓存区 (第一 FIFO1) ; 步骤 5. 转接装置主端口向 U 盘指针 (usbHostPos) 所指的当前数据缓冲区传送一 个单元密文数据 ; 步骤 6. 如果所述转接装置主端口为 “空闲” 状态 (flgHostTxRxDone==1),并且 当 U 盘指针 (usbHostPos) 指向的当前数据缓存区 (FIFO) 沿顺时针方向地下一数据缓 存区 (FIFO) ((usbHostPos +1)&0x03)状态为 “空”,则 U 盘指针 (usbHostPos)沿 顺时针方向指向下一个数据缓存区 (FIFO),同时,解密指针 (encrPos) 沿顺时针方向 指向下一个数据缓存区 (FIFO) ; 步骤 7. 转接装置主端口向 U 盘指针所指的数据缓冲区传送下一个单元密文数据, 解密模块将解密指针所指的数据缓冲区数据进行解密处理 ; 步骤 8. U 盘指针 (usbHostPos) 沿顺时针方向指向下一个数据缓存区 (FIFO), 同时,加密指针 (encrPos) 沿顺时针方向指向下一个数据缓存区 (FIFO),同时,主机 指针 (usbDevicePos) 沿顺时针方向指向下一个数据缓存区 (FIFO) ; 步骤 9. 转接装置主端口向 U 盘指针所指的数据缓冲区传送下一个单元密文数据, 解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针 (usbDevicePos) 所指的数据缓冲区内数据传输给主机。
2: 根据权利要求 1 所述的解密方法,其特征在于 :所述数据缓存区的存储空间与所 述数据单元长度相等,所述四个数据缓存区在地址上为连续的四个数据缓存区。
3: 根据权利要求 1 所述的解密方法,其特征在于 :还包括一个记录解密数据的单元 数的长度计数器,在进行所述转接装置主端口向 U 盘指针 (usbHostPos) 所指的当前数 据缓冲区传送一个单元密文数据操作后,所述长度数器的计数值减 1,长度计数器等于 0,并且主机指针 (usbDevicePos) 等于 U 盘指针 (usbHostPos),结束本次数据解密过 程。
4: 根据权利要求 1 所述的解密方法,其特征在于 :所述解密模块中设置至少三种解 密算法。

说明书


一种用于 USB 储存设备中加密数据的解密方法

    【技术领域】
     本发明涉及一种用于 USB 储存设备中加密数据的解密方法,属于安全存储应用领域。 背景技术 目前, U 盘存储设备被广泛使用,为了数据安全,往往在 U 盘存储设备内储存 加密的数据,以有效保障数字资产信息的安全,使其不被非法用户获取。 因此,将原文 数据高速加密保存到 U 盘存储设备被广泛应用于各种信息安全领域。
     目前,为了对 U 盘存储设备中保存的加密数据进行解密,采取的措施是在普通 移动存储设备中增加一解密模块。 但是,目前的设计普遍存在数据解密速度慢问题。
     随着 U 盘存储设备大容量移动存储设备的广泛应用,这些设备上所存储的加密 数据量越来越大。 因此如何提高解密效率成为本领域技术人员努力的方向。
     发明内容 本发明目的是提供一种用于 USB 储存设备中加密数据的解密方法,该方法实现 了密文数据、明文数据和解密算法的分离,且提高了主机与移动存储设备之间数据解密 速度。
     为达到上述目的,本发明采用的技术方案是 : 1. 一种用于 USB 储存设备中加密数据的解密方法, 包括以下步骤 : 步骤 1. 将转接装置设置于主机与 U 盘之间,此转接装置的从端口与主机的主端口 连接,转接装置的主端口与 U 盘的端口连接,转接装置的解密模块用于解密主机与 U 盘 之间的传输数据,此转接装置内设置有四个数据缓存区,且其第一数据存储区、第二数 据存储区、第三数据存储区和第四数据存储区沿顺时针方向排列 ; 步骤 2.转接装置的从端口收到来自主机的读指令和数据单元长度,并将此读指令和 数据单元长度转发给 U 盘 ; 步骤 3. 配置主机指针、 U 盘指针和解密指针,所述主机指针,用于标识主机读取 数据的数据存储区的地址,所述 U 盘指针,用于标识接受来自 U 盘的数据的数据存储区 的地址,所述加密指针,用于标识解密模块待处理数据的数据存储区的地址 ; 步骤 4. 初始化时将 U 盘指针指向第二数据缓存区,主机指针和加密指针指向第一 数据缓存区 ; 步骤 5. 转接装置主端口向 U 盘指针所指的当前数据缓冲区传送一个单元密文数 据; 步骤 6. 如果所述转接装置主端口为 “空闲” 状态,并且当 U 盘指针指向的当前数 据缓存区沿顺时针方向地下一数据缓存区状态为 “空”,则 U 盘指针沿顺时针方向指向 下一个数据缓存区,同时,加密指针沿顺时针方向指向下一个数据缓存区 ; 步骤 7. 转接装置主端口向 U 盘指针所指的数据缓冲区传送下一个单元密文数据,
     解密模块将解密指针所指的数据缓冲区数据进行解密处理 ; 步骤 8. U 盘指针沿顺时针方向指向下一个数据缓存区,同时,解密指针沿顺时针方 向指向下一个数据缓存区,同时,主机指针沿顺时针方向指向下一个数据缓存区 ; 步骤 9. 转接装置主端口向 U 盘指针所指的数据缓冲区传送下一个单元密文数据, 解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针 所指的数据缓冲区内数据传输给主机。
     上述技术方案中的有关内容解释如下 : 1、上述方案中,所述数据缓存区的存储空间与所述数据单元长度相等,所述四个数 据缓存区在地址上为连续的四个数据缓存区。
     2、上述方案中,还包括一个记录解密数据的单元数的长度计数器,在进行所述 转接装置主端口向 U 盘指针所指的当前数据缓冲区传送一个单元密文数据操作后,所述 长度数器的计数值减 1,当长度计数器等于 0,并且主机指针等于 U 盘指针,结束本次数 据解密过程。
     3、上述方案中,所述解密模块中设置至少三种解密算法。
     由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果 : 本发明使得整个 U 盘移动储存设备解密流转接装置在工作过程中,数据传输速度得 到提升。 使用读速度在 10MB/s 以下的移动存储设备时,基本可做到写速度无损 ;在使 用速度在 30MB/s 的移动存储设备时,通过加密转接装置写的速度可在 25MB/s 以上 ;其 次,实现了明文数据、密文数据和加密算法的分离,大大提高了数据的安全性 ;再次, 解密过程对于普通用户是透明的,使用方便。 附图说明
     附图 1 为本发明转接装置结构示意图 ; 附图 2 为本发明流程示意图 ; 附图 3 为本发明转接装置硬件示意图 ; 附图 4 为本发明软件结构示意图 ; 附图 5 为本发明数据并行示意图 ; 附图 6 为计算机从移动存储设备读数据的时间流程图。具体实施方式
     下面结合附图及实施例对本发明作进一步描述 : 实施例 :一种用于 USB 储存设备中加密数据的解密方法,包括以下步骤 : 步骤 1. 将转接装置设置于主机与 U 盘之间,此转接装置的从端口 USB Dev 与主机 的主端口连接,转接装置的主端口 USB Dev 与 U 盘的从端口连接,转接装置的解密模块 用于解密主机与 U 盘之间的传输数据,此转接装置内设置有四个数据缓存区,且其第一 数据存储区、第二数据存储区、第三数据存储区和第四数据存储区沿顺时针方向排列 ; 步骤 2.转接装置的从端口收到来自主机的读指令和数据单元长度,并将此读指令和 数据单元长度转发给 U 盘 ; 步骤 3. 配置主机指针 usbDevicePos、 U 盘指针 usbHostPos 和解密指针 encrPos,所述主机指针 usbDevicePos,用于标识主机读取数据的数据存储区的地址,所述 U 盘 指针 usbHostPos,用于标识接收来自 U 盘的数据的数据存储区的地址,所述加密指针 encrPos,用于标识解密模块待处理数据的数据存储区的地址 ; 步骤 4. 初始化时将 U 盘指针 usbHostPos 指向第二数据缓存区 FIFO2,主机指针 usbDevicePos 和加密指针 encrPos 指向第一数据缓存区 FIFO1 ; 步骤 5. 转接装置主端口向 U 盘指针 usbHostPos 所指的当前数据缓冲区传送一个单 元密文数据 ; 步骤 6. 如果所述转接装置主端口为 “空闲” 状态 flgHostTxRxDone==1,并且当 U 盘指针 usbHostPos 指向的当前数据缓存区 FIFO 沿顺时针方向地下一数据缓存区 FIFO, (usbHostPos +1)&0x03 状态为 “空”,则 U 盘指针 usbHostPos 沿顺时针方向指向下一个 数据缓存区 FIFO,同时,加密指针 encrPos 沿顺时针方向指向下一个数据缓存区 FIFO ; 步骤 7. 转接装置主端口向 U 盘指针所指的数据缓冲区传送下一个单元密文数据, 解密模块将解密指针所指的数据缓冲区数据进行解密处理 ; 步骤 8. U 盘指针 usbHostPos 沿顺时针方向指向下一个数据缓存区 FIFO,同时,加 密指针 encrPos 沿顺时针方向指向下一个数据缓存区 FIFO,同时,主机指针 usbDevicePos 沿顺时针方向指向下一个数据缓存区 FIFO ; 步骤 9. 转接装置主端口向 U 盘指针所指的数据缓冲区传送下一个单元密文数据, 解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针 usbDevicePos 所指的数据缓冲区内数据传输给主机。
     所述数据缓存区的存储空间与所述数据单元长度相等,所述四个数据缓存区在 地址上为连续的四个数据缓存区。
     还包括一个记录解密数据的单元数的长度数器,在进行所述转接装置主端口 向 U 盘指针 usbHostPos 所指的当前数据缓冲区传送一个单元密文数据操作后,所述长 度数器的计数值减 1,当长度计数器等于 0,并且主机指针 usbDevicePos 等于 U 盘指针 usbHostPos,结束本次数据解密过程。
     所述解密模块中设置至少三种解密算法。
     本实施例上述内容具体工作过程如下。
     在本实施列的 USB 储存设备中,有三种类型的数据在转接装置的主端口 USB Host 和转接装置的从端口 USB Dev 之间传送 :USB 命令块包 CBW、USB 状态 CSW 和普 通数据 DATA。 USB 命令块包 CBW 是主机的主端口发送到转接装置的从端口 USB Dev 的命令,命令格式遵从 SCSI 传输命令集,转接装置需将 SCSI 命令从命令块包 CBW 中提 取出来,执行对应命令,并把此 CBW 命令包,通过转接装置的主端口 USB Host 转发到 U 盘。 USB 状态包 CSW 反映当前命令块包执行的状态,是 U 盘发送到转接装置的主端 口 USB Host,转接装置通过从端口 USB Dev 转发到主机的主端口。
     硬件模块说明 : (1)、 数据缓存区 FIFO (2K) :大小为 2K 字节, USB 数据流存储专用。 由于 USB2.0 数据包大小为 512 字节,因此,2K 字节的 FIFO 划分为 4 块,每块大小为 512 字 节。
     (2)、 转 接 装 置 的 主 端 口 USB Host :转 接 装 置 硬 件 模 块, 支 持 USB1.1 和USB2.0 协议,可通过 Host 端口接收 U 盘的数据到 FIFO,或通过 Host 端口发送 FIFO 内 的数据到 U 盘。
     (3)、 转 接 装 置 的 从 端 口 USB Dev :转 接 装 置 硬 件 模 块, 支 持 USB1.1 和 USB2.0 协议,可通过 Device 端口接收来自主机的数据到 FIFO,或通过 Device 端口发送 FIFO 内的数据到主机。
     (4)、解密模块 ENCR :解密控制模块,通过调用 SM1,SM4,DES 等算法, 对数据缓冲区 FIFO 内的数据进行加解密。
     (5)、 SM1 :加解密算法模块,受解密模块 ENCR 调度。
     (6)、 SM4 :加解密算法模块,受解密模块 ENCR 调度。
     (7)、 DES :加解密算法模块,受解密模块 ENCR 调度。
     设计结构如下 : (1)、 USB Host 中断服务函数 : USBHost_ISR () 转接装置的主端口 USB Host 模块完成一次数据传输 (发送或接收 512 字节),则会 产生一次中断,对应中断服务函数中,会配置本模块状态标记。
     (2)、 USB Dev 中断服务函数 :USBDev_ISR () 转接装置的从端口 USB Dev 模块完成一次数据传输 (发送或接收 512 字节),则会产 生一次中断,对应中断服务函数中,会配置本模块状态标记。 (3)、 ENCR 中断服务函数 : Encr_ISR () 解密模块 ENCR 模块完成一次解密 (解密 512 字节),则会产生一次中断,对应中断 服务函数中,会配置本模块状态标记。
     (4)、转接装置的主端口 USB Host 状态标记 : flgHostTxRxDone 标记 USB Host 模块忙碌或空闲。
     flgHostTxRxDone 等于 0, USB Host 忙碌 ; flgHostTxRxDone 等于 1, USB Host 空闲 ; (5)、转接装置的从端口 USB Dev 状态标记 : flgDeviceTxRxDone 标记 USB Dev 模块忙碌或空闲。
     flgDeviceTxRxDone 等于 0, USB Dev 忙碌 ; flgDeviceTxRxDone 等于 1, USB Dev 空闲 ; (6)、解密模块 ENCR 状态标记 : flgSecurityDone 标记解密模块 ENCR 模块忙碌或空闲。
     flgSecurityDone 等于 0, ENCR 忙碌 ; flgSecurityDone 等于 1, ENCR 空闲 ; (7)、 U 盘指针 :usbHostPos 当前 USB Host 操作的 FIFO 起始地址。 USB Host 收到或发送一个数据包后,指针指 向下一个 FIFO,顺序为 : FIFO0 → FIFO1 → FIFO2 → FIFO3 → FIFO0。
     usbHostPos 等于 0, USB Host 当前操作的为 FIFO0 ; usbHostPos 等于 1, USB Host 当前操作的为 FIFO1 ; usbHostPos 等于 2, USB Host 当前操作的为 FIFO2 ; usbHostPos 等于 3, USB Host 当前操作的为 FIFO3 ;
     (8)、主机指针 :usbDevicePos 当前 USB Dev 操作的 FIFO 起始地址。 USB Dev 收到或发送一个数据包后,指针指 向下一个 FIFO,顺序为 :FIFO0 → FIFO1 → FIFO2 → FIFO3 → FIFO0。
     usbDevicePos 等于 0, USB Host 当前操作的为 FIFO0 ; usbDevicePos 等于 1, USB Host 当前操作的为 FIFO1 ; usbDevicePos 等于 2, USB Host 当前操作的为 FIFO2 ; usbDevicePos 等于 3, USB Host 当前操作的为 FIFO3 ; (9)、解密指针 :encrPos 当前 ENCR 操作的 FIFO 起始地址。 ENCR 解密一个数据包后,指针指向下一个 FIFO,顺序为 :FIFO0 → FIFO1 → FIFO2 → FIFO3 → FIFO0。
     encrPos 等于 0, USB Host 当前操作的为 FIFO0 ; encrPos 等于 1, USB Host 当前操作的为 FIFO1 ; encrPos 等于 2, USB Host 当前操作的为 FIFO2 ; encrPos 等于 3, USB Host 当前操作的为 FIFO3 ; (10)、数据缓存区 FIFO 状态标记 : FIFO 分为三种状态 :FIFO 空、 FIFO 数据满、 FIFO 数据已加解或解密。
     FIFO 状态等于 0, FIFO 为空 ; FIFO 状态等于 1, FIFO 数据满 ; FIFO 状态等于 2, FIFO 数据已加密或解密 ; (11)、 USB 数据流传输管理和模块调度程序 负责 USB Host、 USB Dev 和 ENCR 三个硬件模块的调度,管理数据流读写过程。 读流程 (PC 机从 U 盘读数据工作流程) U 盘 → USB Host → ENCR 解密 → USB Dev → PC 机 PC 机从 U 盘读取数据详细步骤 : 1、收到 PC 机发出 CBW 包 (读取数据命令包) ; 2、从 CBW 包中获取待传输数据长度,如果待传输数据长度等于零,跳转到 10 ; 3、 USB Host 向 U 盘发送此 CBW 包 ; 4、模块指针初始化,配置 usbHostPos=1, usbDevicePos=0, encrPos=0 ; 5、配置 USB Host 模块接收数据指针指向 FIFO1 (usbHostPos=1), U 盘发送 Data In 请求,配置 USB Host 模块 “忙碌” flgHostTxRxDone = = 0 ; 6、 如 果 USB Host 模 块 “空 闲” flgHostTxRxDone = = 1, 并 且 USB Host 指 针 usbHostPos 指向的当前 FIFO 位置正向循环加一位置 (usbHostPos +1)&0x03 的 FIFO 状态 为 “空” : 设置当前 FIFO, usbHostPos 指向的 FIFO,状态为 “数据满” ; 配 置 USB Host 指 针 指 向 下 一 个 数 据 缓 冲 区 FIFO 正 向 循 环 加 一 :usbHostPos = (usbHostPos+1)&0x03 ; 配置 USB Host 模块接收数据 FIFO 为 USB Host 指针指向的 FIFO (usbHostPos) ; 传输数据单元数 = 传输数据单元数- 1 ;
     如果传输数据单元数大于零 , USB Host 向存储设备发送 Data In 请求,接收数据包 ; 置 USB Host 模块为 “忙碌” ( flgHostTxRxDone = 0) ; 7、如果 ENCR 模块当前状态为 “空闲” (flgSecurityDone = =1),并且解密指针指 向的当前 FIFO 位置 encrPos 正向循环加一位置 (encrPos+1)&0x03 的 FIFO 状态为 “数据 满”,则 : 配置解密指针指向的当前 FIFO 状态为 “数据已加密或解密” ; 解密指针指向下一个 FIFO :(encrPos = (encrPos +1)&0x03) ; 配置 ENCR 模块解密数据 FIFO 为 ENCR 指针指向的 FIFO (encrPos) ; 配置 ENCR 模块为 “忙碌” (flgSecurityDone = 0) ; 启动 ENCR 模块,对数据进行解密 ; 8、如果 USB Dev 模块当前状态为 “空闲” (flgDeviceTxRxDone == 1),并且 USB Dev 当前 FIFO 位置 usbDevicePos 正向循环加一位置 ((usbDevicePos+1)&0x03)的 FIFO 状态为 “数据已解密”,则 : 配置 U 盘指针指向的当前 FIFO 状态为 “空” ; U 盘 指 针 指 向 下 一 个 FIFO (正 向 循 环 加 一) :usbDevicePos = (usbDevicePos +1)&0x03 ; 配置 USB Dev 模块发送数据 FIFO 为当前 U 盘指针指向的 FIFOusbDevicePos ; 配置 USB Dev 模块为 “忙碌” flgDeviceTxRxDone = 0 ; 发送数据包给 PC 机 ; 9、 如 果 此 时 数 据 传 输 单 元 数 不 等 于 零, 或 者 usbDevicePos +1)&0x03 不 等 于 usbHostPos, 则跳转到步骤 6 ; 10、 USB Host 向存储设备发送 Data In 请求,获取 CSW 包 ; 11、等待 USB Host 指令完成 ; 12、 USB Host 读取 CSW 包 ; 13、等待 USB Dev 空闲 ; 14、 USB Dev 发送 CSW 包给 PC 主机 ; 15、退出。
     注 :其中,USB Host 模块、USB Dev 模块和 ENCR 模块在完成一次操作后,将 触发本模块的中断,打断程序循环,中断服务函数 USBHost_ISR( )、 USBDev_ISR( ) 和 ENCR_ISR( ) 将执行,分别会配置模块状态变量 :flgHostTxRxDone、 flgSecurityDone 和 flgDeviceTxRxDone。
     如附图 5 所示, 图 5 中 (1) 表示,转接装置的主端口 USB Host 接收第一包,转接装置的解密模块 Encr 空闲,转接装置的从端口模块 USB Dev 空闲 ; 图 5 中 (2) 表示, Host 接收完第一包, Encr 空闲, Dev 空闲 ; 图 5 中 (3) 表示, Host 接收第二包, Encr 解密第一包, Dev 空闲 ; 图 5 中 (4) 表示, Host 接收第二包, Encr 解密完第一包, Dev 空闲 ; 图 5 中 (5) 表示, Host 接收完第二包, Encr 空闲, Dev 空闲 ; 图 5 中 (6) 表示, Host 接收第三包, Encr 解密第二包, Dev 发送第一包 ;图 5 中 (7) 表示, Host 接收第四包, Encr 解密第三包, Dev 发送第二包 ; 图 5 中 (8) 表示, Host 接收第五包, Encr 解密第四包, Dev 发送第三包。
     如附图 6 所示,对加密转接装置最大传输性能进行评估,评估基准如下 : USB 高速传输模式,每次都以批量传输所支持的最大包数 (128 个) 进行传输, USB 接口传 输时间是理论时间,而非接入移动存储设备后的时间,系统时钟 80MHZ, USB 接口传输 一个数据包 (512B) 时间是 13us, USB 接口传输一个命令包或状态包时间是 7.5us,加 密 / 解密一个数据包时间是 6us。
     性能如下 :传输 128 个数据包 (64KB) 所需理论时间为 : 128*(Tcpu2+Tdd)+ Tcpu1+(Tcbw+Tcpu2)+(Thd+Tcpu2)+(Tdec+Tcpu2)+(Tcsw+Tcpu2)= 128*(2+13)+3+(7.5 +2)+(13+2)+(6+2)+(7.5+2)=1963us 读的传输速率为 64KB/1963us=31.8MB/s。
     上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的 人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。 凡根据本 发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

一种用于USB储存设备中加密数据的解密方法.pdf_第1页
第1页 / 共14页
一种用于USB储存设备中加密数据的解密方法.pdf_第2页
第2页 / 共14页
一种用于USB储存设备中加密数据的解密方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种用于USB储存设备中加密数据的解密方法.pdf》由会员分享,可在线阅读,更多相关《一种用于USB储存设备中加密数据的解密方法.pdf(14页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102023936A43申请公布日20110420CN102023936ACN102023936A21申请号201010551241722申请日20101119G06F12/1420060171申请人苏州国芯科技有限公司地址215011江苏省苏州市高新区竹园路209号苏州创业园3号楼230172发明人郑茳肖佐楠匡启和王廷平尤国芳74专利代理机构苏州创元专利商标事务所有限公司32103代理人马明渡54发明名称一种用于USB储存设备中加密数据的解密方法57摘要一种用于USB储存设备中加密数据的解密方法,将转接装置设置于主机与U盘之间,其第一数据存储区、第二数据存储区、第三数据存储。

2、区和第四数据存储区沿顺时针方向排列;配置主机指针、U盘指针和解密指针,所述主机指针;U盘指针沿顺时针方向指向下一个数据缓存区,同时,加密指针沿顺时针方向指向下一个数据缓存区,同时,主机指针沿顺时针方向指向下一个数据缓存区;转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针所指的数据缓冲区内数据传输给主机。本发明实现了明文数据、密文数据和加密算法的分离,且提高了主机与移动存储设备之间数据解密速度。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书7页附图5页CN1020239。

3、50A1/1页21一种用于USB储存设备中加密数据的解密方法,其特征在于包括以下步骤步骤1将转接装置设置于主机与U盘之间,此转接装置的从端口(USBDEV)与主机的主端口连接,转接装置的主端口(USBHOST)与U盘的端口连接,转接装置的解密模块用于解密主机与U盘之间的传输数据,此转接装置内设置有四个数据缓存区,且其第一数据存储区、第二数据存储区、第三数据存储区和第四数据存储区沿顺时针方向排列;步骤2转接装置的从端口收到来自主机的读指令和数据单元长度,并将此读指令和数据单元长度转发给U盘;步骤3配置主机指针(USBDEVICEPOS)、U盘指针(USBHOSTPOS)和解密指针(ENCRPOS。

4、),所述主机指针(USBDEVICEPOS),用于标识主机读取数据的数据存储区的地址,所述U盘指针(USBHOSTPOS),用于标识接收来自U盘的数据的数据存储区的地址,所述加密指针(ENCRPOS),用于标识解密模块待处理数据的数据存储区的地址;步骤4初始化时将U盘指针(USBHOSTPOS)指向第二数据缓存区(第二FIFO2),主机指针(USBDEVICEPOS)和加密指针(ENCRPOS)指向第一数据缓存区(第一FIFO1);步骤5转接装置主端口向U盘指针(USBHOSTPOS)所指的当前数据缓冲区传送一个单元密文数据;步骤6如果所述转接装置主端口为“空闲”状态(FLGHOSTTXRXD。

5、ONE1),并且当U盘指针(USBHOSTPOS)指向的当前数据缓存区(FIFO)沿顺时针方向地下一数据缓存区(FIFO)(USBHOSTPOS10X03)状态为“空”,则U盘指针(USBHOSTPOS)沿顺时针方向指向下一个数据缓存区(FIFO),同时,解密指针(ENCRPOS)沿顺时针方向指向下一个数据缓存区(FIFO);步骤7转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理;步骤8U盘指针(USBHOSTPOS)沿顺时针方向指向下一个数据缓存区(FIFO),同时,加密指针(ENCRPOS)沿顺时针方向指向下一个数据缓存区(。

6、FIFO),同时,主机指针(USBDEVICEPOS)沿顺时针方向指向下一个数据缓存区(FIFO);步骤9转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针(USBDEVICEPOS)所指的数据缓冲区内数据传输给主机。2根据权利要求1所述的解密方法,其特征在于所述数据缓存区的存储空间与所述数据单元长度相等,所述四个数据缓存区在地址上为连续的四个数据缓存区。3根据权利要求1所述的解密方法,其特征在于还包括一个记录解密数据的单元数的长度计数器,在进行所述转接装置主端口向U盘指针(USBHOSTPOS)所指的当。

7、前数据缓冲区传送一个单元密文数据操作后,所述长度数器的计数值减1,长度计数器等于0,并且主机指针(USBDEVICEPOS)等于U盘指针(USBHOSTPOS),结束本次数据解密过程。4根据权利要求1所述的解密方法,其特征在于所述解密模块中设置至少三种解密算法。权利要求书CN102023936ACN102023950A1/7页3一种用于USB储存设备中加密数据的解密方法技术领域0001本发明涉及一种用于USB储存设备中加密数据的解密方法,属于安全存储应用领域。背景技术0002目前,U盘存储设备被广泛使用,为了数据安全,往往在U盘存储设备内储存加密的数据,以有效保障数字资产信息的安全,使其不被非。

8、法用户获取。因此,将原文数据高速加密保存到U盘存储设备被广泛应用于各种信息安全领域。0003目前,为了对U盘存储设备中保存的加密数据进行解密,采取的措施是在普通移动存储设备中增加一解密模块。但是,目前的设计普遍存在数据解密速度慢问题。0004随着U盘存储设备大容量移动存储设备的广泛应用,这些设备上所存储的加密数据量越来越大。因此如何提高解密效率成为本领域技术人员努力的方向。发明内容0005本发明目的是提供一种用于USB储存设备中加密数据的解密方法,该方法实现了密文数据、明文数据和解密算法的分离,且提高了主机与移动存储设备之间数据解密速度。0006为达到上述目的,本发明采用的技术方案是1一种用于。

9、USB储存设备中加密数据的解密方法,包括以下步骤步骤1将转接装置设置于主机与U盘之间,此转接装置的从端口与主机的主端口连接,转接装置的主端口与U盘的端口连接,转接装置的解密模块用于解密主机与U盘之间的传输数据,此转接装置内设置有四个数据缓存区,且其第一数据存储区、第二数据存储区、第三数据存储区和第四数据存储区沿顺时针方向排列;步骤2转接装置的从端口收到来自主机的读指令和数据单元长度,并将此读指令和数据单元长度转发给U盘;步骤3配置主机指针、U盘指针和解密指针,所述主机指针,用于标识主机读取数据的数据存储区的地址,所述U盘指针,用于标识接受来自U盘的数据的数据存储区的地址,所述加密指针,用于标识。

10、解密模块待处理数据的数据存储区的地址;步骤4初始化时将U盘指针指向第二数据缓存区,主机指针和加密指针指向第一数据缓存区;步骤5转接装置主端口向U盘指针所指的当前数据缓冲区传送一个单元密文数据;步骤6如果所述转接装置主端口为“空闲”状态,并且当U盘指针指向的当前数据缓存区沿顺时针方向地下一数据缓存区状态为“空”,则U盘指针沿顺时针方向指向下一个数据缓存区,同时,加密指针沿顺时针方向指向下一个数据缓存区;步骤7转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,说明书CN102023936ACN102023950A2/7页4解密模块将解密指针所指的数据缓冲区数据进行解密处理;步骤8U盘。

11、指针沿顺时针方向指向下一个数据缓存区,同时,解密指针沿顺时针方向指向下一个数据缓存区,同时,主机指针沿顺时针方向指向下一个数据缓存区;步骤9转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针所指的数据缓冲区内数据传输给主机。0007上述技术方案中的有关内容解释如下1、上述方案中,所述数据缓存区的存储空间与所述数据单元长度相等,所述四个数据缓存区在地址上为连续的四个数据缓存区。00082、上述方案中,还包括一个记录解密数据的单元数的长度计数器,在进行所述转接装置主端口向U盘指针所指的当前数据缓冲区传送一个单。

12、元密文数据操作后,所述长度数器的计数值减1,当长度计数器等于0,并且主机指针等于U盘指针,结束本次数据解密过程。00093、上述方案中,所述解密模块中设置至少三种解密算法。0010由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果本发明使得整个U盘移动储存设备解密流转接装置在工作过程中,数据传输速度得到提升。使用读速度在10MB/S以下的移动存储设备时,基本可做到写速度无损;在使用速度在30MB/S的移动存储设备时,通过加密转接装置写的速度可在25MB/S以上;其次,实现了明文数据、密文数据和加密算法的分离,大大提高了数据的安全性;再次,解密过程对于普通用户是透明的,使用方便。附图说。

13、明0011附图1为本发明转接装置结构示意图;附图2为本发明流程示意图;附图3为本发明转接装置硬件示意图;附图4为本发明软件结构示意图;附图5为本发明数据并行示意图;附图6为计算机从移动存储设备读数据的时间流程图。具体实施方式0012下面结合附图及实施例对本发明作进一步描述实施例一种用于USB储存设备中加密数据的解密方法,包括以下步骤步骤1将转接装置设置于主机与U盘之间,此转接装置的从端口USBDEV与主机的主端口连接,转接装置的主端口USBDEV与U盘的从端口连接,转接装置的解密模块用于解密主机与U盘之间的传输数据,此转接装置内设置有四个数据缓存区,且其第一数据存储区、第二数据存储区、第三数据。

14、存储区和第四数据存储区沿顺时针方向排列;步骤2转接装置的从端口收到来自主机的读指令和数据单元长度,并将此读指令和数据单元长度转发给U盘;步骤3配置主机指针USBDEVICEPOS、U盘指针USBHOSTPOS和解密指针ENCRPOS,说明书CN102023936ACN102023950A3/7页5所述主机指针USBDEVICEPOS,用于标识主机读取数据的数据存储区的地址,所述U盘指针USBHOSTPOS,用于标识接收来自U盘的数据的数据存储区的地址,所述加密指针ENCRPOS,用于标识解密模块待处理数据的数据存储区的地址;步骤4初始化时将U盘指针USBHOSTPOS指向第二数据缓存区FIFO。

15、2,主机指针USBDEVICEPOS和加密指针ENCRPOS指向第一数据缓存区FIFO1;步骤5转接装置主端口向U盘指针USBHOSTPOS所指的当前数据缓冲区传送一个单元密文数据;步骤6如果所述转接装置主端口为“空闲”状态FLGHOSTTXRXDONE1,并且当U盘指针USBHOSTPOS指向的当前数据缓存区FIFO沿顺时针方向地下一数据缓存区FIFO,USBHOSTPOS10X03状态为“空”,则U盘指针USBHOSTPOS沿顺时针方向指向下一个数据缓存区FIFO,同时,加密指针ENCRPOS沿顺时针方向指向下一个数据缓存区FIFO;步骤7转接装置主端口向U盘指针所指的数据缓冲区传送下一个。

16、单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理;步骤8U盘指针USBHOSTPOS沿顺时针方向指向下一个数据缓存区FIFO,同时,加密指针ENCRPOS沿顺时针方向指向下一个数据缓存区FIFO,同时,主机指针USBDEVICEPOS沿顺时针方向指向下一个数据缓存区FIFO;步骤9转接装置主端口向U盘指针所指的数据缓冲区传送下一个单元密文数据,解密模块将解密指针所指的数据缓冲区数据进行解密处理,转接装置从端口将主机指针USBDEVICEPOS所指的数据缓冲区内数据传输给主机。0013所述数据缓存区的存储空间与所述数据单元长度相等,所述四个数据缓存区在地址上为连续的四个数据缓存区。

17、。0014还包括一个记录解密数据的单元数的长度数器,在进行所述转接装置主端口向U盘指针USBHOSTPOS所指的当前数据缓冲区传送一个单元密文数据操作后,所述长度数器的计数值减1,当长度计数器等于0,并且主机指针USBDEVICEPOS等于U盘指针USBHOSTPOS,结束本次数据解密过程。0015所述解密模块中设置至少三种解密算法。0016本实施例上述内容具体工作过程如下。0017在本实施列的USB储存设备中,有三种类型的数据在转接装置的主端口USBHOST和转接装置的从端口USBDEV之间传送USB命令块包CBW、USB状态CSW和普通数据DATA。USB命令块包CBW是主机的主端口发送到。

18、转接装置的从端口USBDEV的命令,命令格式遵从SCSI传输命令集,转接装置需将SCSI命令从命令块包CBW中提取出来,执行对应命令,并把此CBW命令包,通过转接装置的主端口USBHOST转发到U盘。USB状态包CSW反映当前命令块包执行的状态,是U盘发送到转接装置的主端口USBHOST,转接装置通过从端口USBDEV转发到主机的主端口。0018硬件模块说明(1)、数据缓存区FIFO(2K)大小为2K字节,USB数据流存储专用。由于USB20数据包大小为512字节,因此,2K字节的FIFO划分为4块,每块大小为512字节。0019(2)、转接装置的主端口USBHOST转接装置硬件模块,支持US。

19、B11和说明书CN102023936ACN102023950A4/7页6USB20协议,可通过HOST端口接收U盘的数据到FIFO,或通过HOST端口发送FIFO内的数据到U盘。0020(3)、转接装置的从端口USBDEV转接装置硬件模块,支持USB11和USB20协议,可通过DEVICE端口接收来自主机的数据到FIFO,或通过DEVICE端口发送FIFO内的数据到主机。0021(4)、解密模块ENCR解密控制模块,通过调用SM1,SM4,DES等算法,对数据缓冲区FIFO内的数据进行加解密。0022(5)、SM1加解密算法模块,受解密模块ENCR调度。0023(6)、SM4加解密算法模块,受。

20、解密模块ENCR调度。0024(7)、DES加解密算法模块,受解密模块ENCR调度。0025设计结构如下(1)、USBHOST中断服务函数USBHOST_ISR()转接装置的主端口USBHOST模块完成一次数据传输(发送或接收512字节),则会产生一次中断,对应中断服务函数中,会配置本模块状态标记。0026(2)、USBDEV中断服务函数USBDEV_ISR()转接装置的从端口USBDEV模块完成一次数据传输(发送或接收512字节),则会产生一次中断,对应中断服务函数中,会配置本模块状态标记。0027(3)、ENCR中断服务函数ENCR_ISR()解密模块ENCR模块完成一次解密(解密512字。

21、节),则会产生一次中断,对应中断服务函数中,会配置本模块状态标记。0028(4)、转接装置的主端口USBHOST状态标记FLGHOSTTXRXDONE标记USBHOST模块忙碌或空闲。0029FLGHOSTTXRXDONE等于0,USBHOST忙碌;FLGHOSTTXRXDONE等于1,USBHOST空闲;(5)、转接装置的从端口USBDEV状态标记FLGDEVICETXRXDONE标记USBDEV模块忙碌或空闲。0030FLGDEVICETXRXDONE等于0,USBDEV忙碌;FLGDEVICETXRXDONE等于1,USBDEV空闲;(6)、解密模块ENCR状态标记FLGSECURITY。

22、DONE标记解密模块ENCR模块忙碌或空闲。0031FLGSECURITYDONE等于0,ENCR忙碌;FLGSECURITYDONE等于1,ENCR空闲;(7)、U盘指针USBHOSTPOS当前USBHOST操作的FIFO起始地址。USBHOST收到或发送一个数据包后,指针指向下一个FIFO,顺序为FIFO0FIFO1FIFO2FIFO3FIFO0。0032USBHOSTPOS等于0,USBHOST当前操作的为FIFO0;USBHOSTPOS等于1,USBHOST当前操作的为FIFO1;USBHOSTPOS等于2,USBHOST当前操作的为FIFO2;USBHOSTPOS等于3,USBHOS。

23、T当前操作的为FIFO3;说明书CN102023936ACN102023950A5/7页7(8)、主机指针USBDEVICEPOS当前USBDEV操作的FIFO起始地址。USBDEV收到或发送一个数据包后,指针指向下一个FIFO,顺序为FIFO0FIFO1FIFO2FIFO3FIFO0。0033USBDEVICEPOS等于0,USBHOST当前操作的为FIFO0;USBDEVICEPOS等于1,USBHOST当前操作的为FIFO1;USBDEVICEPOS等于2,USBHOST当前操作的为FIFO2;USBDEVICEPOS等于3,USBHOST当前操作的为FIFO3;(9)、解密指针ENCR。

24、POS当前ENCR操作的FIFO起始地址。ENCR解密一个数据包后,指针指向下一个FIFO,顺序为FIFO0FIFO1FIFO2FIFO3FIFO0。0034ENCRPOS等于0,USBHOST当前操作的为FIFO0;ENCRPOS等于1,USBHOST当前操作的为FIFO1;ENCRPOS等于2,USBHOST当前操作的为FIFO2;ENCRPOS等于3,USBHOST当前操作的为FIFO3;(10)、数据缓存区FIFO状态标记FIFO分为三种状态FIFO空、FIFO数据满、FIFO数据已加解或解密。0035FIFO状态等于0,FIFO为空;FIFO状态等于1,FIFO数据满;FIFO状态等。

25、于2,FIFO数据已加密或解密;(11)、USB数据流传输管理和模块调度程序负责USBHOST、USBDEV和ENCR三个硬件模块的调度,管理数据流读写过程。0036读流程(PC机从U盘读数据工作流程)U盘USBHOSTENCR解密USBDEVPC机PC机从U盘读取数据详细步骤1、收到PC机发出CBW包(读取数据命令包);2、从CBW包中获取待传输数据长度,如果待传输数据长度等于零,跳转到10;3、USBHOST向U盘发送此CBW包;4、模块指针初始化,配置USBHOSTPOS1,USBDEVICEPOS0,ENCRPOS0;5、配置USBHOST模块接收数据指针指向FIFO1(USBHOST。

26、POS1),U盘发送DATAIN请求,配置USBHOST模块“忙碌”FLGHOSTTXRXDONE0;6、如果USBHOST模块“空闲”FLGHOSTTXRXDONE1,并且USBHOST指针USBHOSTPOS指向的当前FIFO位置正向循环加一位置USBHOSTPOS10X03的FIFO状态为“空”设置当前FIFO,USBHOSTPOS指向的FIFO,状态为“数据满”;配置USBHOST指针指向下一个数据缓冲区FIFO正向循环加一USBHOSTPOS(USBHOSTPOS10X03;配置USBHOST模块接收数据FIFO为USBHOST指针指向的FIFO(USBHOSTPOS);传输数据单元。

27、数传输数据单元数1;说明书CN102023936ACN102023950A6/7页8如果传输数据单元数大于零,USBHOST向存储设备发送DATAIN请求,接收数据包;置USBHOST模块为“忙碌”(FLGHOSTTXRXDONE0);7、如果ENCR模块当前状态为“空闲”(FLGSECURITYDONE1),并且解密指针指向的当前FIFO位置ENCRPOS正向循环加一位置ENCRPOS10X03的FIFO状态为“数据满”,则配置解密指针指向的当前FIFO状态为“数据已加密或解密”;解密指针指向下一个FIFOENCRPOSENCRPOS10X03;配置ENCR模块解密数据FIFO为ENCR指针。

28、指向的FIFO(ENCRPOS);配置ENCR模块为“忙碌”(FLGSECURITYDONE0);启动ENCR模块,对数据进行解密;8、如果USBDEV模块当前状态为“空闲”FLGDEVICETXRXDONE1,并且USBDEV当前FIFO位置USBDEVICEPOS正向循环加一位置(USBDEVICEPOS10X03)的FIFO状态为“数据已解密”,则配置U盘指针指向的当前FIFO状态为“空”;U盘指针指向下一个FIFO(正向循环加一)USBDEVICEPOSUSBDEVICEPOS10X03;配置USBDEV模块发送数据FIFO为当前U盘指针指向的FIFOUSBDEVICEPOS;配置US。

29、BDEV模块为“忙碌”FLGDEVICETXRXDONE0;发送数据包给PC机;9、如果此时数据传输单元数不等于零,或者USBDEVICEPOS10X03不等于USBHOSTPOS,则跳转到步骤6;10、USBHOST向存储设备发送DATAIN请求,获取CSW包;11、等待USBHOST指令完成;12、USBHOST读取CSW包;13、等待USBDEV空闲;14、USBDEV发送CSW包给PC主机;15、退出。0037注其中,USBHOST模块、USBDEV模块和ENCR模块在完成一次操作后,将触发本模块的中断,打断程序循环,中断服务函数USBHOST_ISR、USBDEV_ISR和ENCR_。

30、ISR将执行,分别会配置模块状态变量FLGHOSTTXRXDONE、FLGSECURITYDONE和FLGDEVICETXRXDONE。0038如附图5所示,图5中(1)表示,转接装置的主端口USBHOST接收第一包,转接装置的解密模块ENCR空闲,转接装置的从端口模块USBDEV空闲;图5中(2)表示,HOST接收完第一包,ENCR空闲,DEV空闲;图5中(3)表示,HOST接收第二包,ENCR解密第一包,DEV空闲;图5中(4)表示,HOST接收第二包,ENCR解密完第一包,DEV空闲;图5中(5)表示,HOST接收完第二包,ENCR空闲,DEV空闲;图5中(6)表示,HOST接收第三包,。

31、ENCR解密第二包,DEV发送第一包;说明书CN102023936ACN102023950A7/7页9图5中(7)表示,HOST接收第四包,ENCR解密第三包,DEV发送第二包;图5中(8)表示,HOST接收第五包,ENCR解密第四包,DEV发送第三包。0039如附图6所示,对加密转接装置最大传输性能进行评估,评估基准如下USB高速传输模式,每次都以批量传输所支持的最大包数(128个)进行传输,USB接口传输时间是理论时间,而非接入移动存储设备后的时间,系统时钟80MHZ,USB接口传输一个数据包(512B)时间是13US,USB接口传输一个命令包或状态包时间是75US,加密/解密一个数据包时。

32、间是6US。0040性能如下传输128个数据包(64KB)所需理论时间为128TCPU2TDDTCPU1TCBWTCPU2THDTCPU2TDECTCPU2TCSWTCPU21282133752132627521963US读的传输速率为64KB/1963US318MB/S。0041上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。说明书CN102023936ACN102023950A1/5页10图1说明书附图CN102023936ACN102023950A2/5页11图2图3说明书附图CN102023936ACN102023950A3/5页12图4说明书附图CN102023936ACN102023950A4/5页13图5说明书附图CN102023936ACN102023950A5/5页14图6说明书附图CN102023936A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1