《一种用于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。