基于WinPE启动的加密U盘量产技术研究与实现
发布时间:2020-07-30 09:29
【摘要】:随着信息技术的发展和数字产品的普及,随身可携带的U盘已经成为每个人必备的存储设备。然而普通的U盘存储功能已经渐渐不能满足客户日益增长的需求。出于对关键数据的保密,市场上出现了可加密的U盘。出于对受损的操作系统的恢复,出现了可自启动的WinPE在盘操作系统。如何才能将这两个不同功能的需求集成于一个U盘之上,于是一种基于WinPE启动的加密U盘量产技术就应运而生了。 本文首先研究了主要的加解密算法包括对称加密,非对称加密和数字签名的技术,同时分析了启动盘的主要技术要点。针对市场上主流的基于8位处理器的加密U盘产品的不足(8位处理器容易被破解且无法进行复杂的加密运算),设计并量产出基于SCCII+安全芯片的高速率、高安全性的加密U盘,并提出了整个量产加密U盘的开发架构。在此设计架构基础上,进一步深入研究了加密U盘固件端开发架构的设计,以及客户端基于WinPE启动的U盘量产软件架构的设计与实现。 本文工作的创新性主要体现在以下五个方面: 1.研究并实现了加密U盘特有的SCSI私有命令指令,扩展了标准UFI命令以外更多与U盘交互的方式。2.研究并实现了基于SCCII+安全芯片SCB2加密模块的U盘加解密操作的实现,很大程度解决了基于8位处理器的加密U盘产品容易被破解的不足。3.研究并实现了U盘实时检测插入技术,提高了量产工具检测插入U盘的灵敏度。4.研究并实现了利用多线程技术实现同时量产多个U盘,大大改善了市面上量产工具只能一次量产一个U盘的局限性。5.研究并实现了量产U盘的同时,FAT表格式化文件的写入,创新性地在加密U盘的基础上,增加了WinPE启动功能的特性,完全符合U盘功能多元化的趋势。
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP333.2
【图文】:
第 17页图 4 SCCII+结构框图[14]Figure 4 SCCII+ Block Diagram[14]SCCII+安全控制器具有多种接口,如 NAND Flash 接口、USB 接口,SPI、SCI、UCI 接口等。以下仅对加密 U 盘中主要涉及的接口特点进行描述: 通用输入输出端口(GPIO): 通过软件编程可以实现位操作。 不用的外围设备可以复用成。 最大支持24个GPIO口。 USB控制器:
Figure 6 Bulk Transfer Format[14]图6给出了批量传输的输入输出事务格式。 输入:当主机准备好接收批量数据时,发送一个IN 令牌包。如果设备接收到有错的IN 令牌包,就忽略。如果令牌包正确的被接收,设备既可以发送批量数据包,也可以发送一个STALL 包表示当前Endpoint 正忙,暂时没有数据要发送。 输出:当主机要向设备发送批量数据包,首先发送一个OUT 令牌后紧跟着发送批量数据包。如果OUT 令牌或者数据包存在错误,设备就会忽略这些包。如果设备的Endpoint 缓冲是空的,并且它已经把数据放到endpoint 缓冲
图 12 FTL 扇区映射[1]Figure 12 FTL sector relocation[1]上图形象地描述了 FTL 的工作机制。对于 Windows 操作系统看到的 NANDFlash 是一个块连续的块设备,而 NAND Flash 的物理地址是不可能连续的,必须通过 FTL 层将操作系统发过来的逻辑地址转换成 NAND Flash 非连续空间对应的物理地址。PCMCIA 组织的 FTL 规范中将地址分成三类:虚拟地块、逻辑地址、物理地址。虚拟地址是指 PC 机文件系统 FAT 层给出的地址,是以扇区为单位的。例如虚拟地址为 500,它表示文件系统的第 500 个扇区。逻辑地址是指虚拟地址经过 FTL 层的转换,映射到别一个地址,此地址也是以扇区为单位的。物理地址是指逻辑地址所对应的 NAND Flash 中具体的物理存储地址。FTL 规范了提到的“块”,均是指文件系统扇区的概念,并非 NAND Flash 的物理块。FTL 规范了采用了三级映射的方法。本文固件端设计的 NandFlash 地址映射和解析主要采用二级映射的方法,将 PC机给的地址称为逻辑地址,将 NAND Flash 的实际地址称为物理地址,且本小节中提到的“块”均是指 NAND Flash 的物理块。
本文编号:2775354
【学位授予单位】:上海交通大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP333.2
【图文】:
第 17页图 4 SCCII+结构框图[14]Figure 4 SCCII+ Block Diagram[14]SCCII+安全控制器具有多种接口,如 NAND Flash 接口、USB 接口,SPI、SCI、UCI 接口等。以下仅对加密 U 盘中主要涉及的接口特点进行描述: 通用输入输出端口(GPIO): 通过软件编程可以实现位操作。 不用的外围设备可以复用成。 最大支持24个GPIO口。 USB控制器:
Figure 6 Bulk Transfer Format[14]图6给出了批量传输的输入输出事务格式。 输入:当主机准备好接收批量数据时,发送一个IN 令牌包。如果设备接收到有错的IN 令牌包,就忽略。如果令牌包正确的被接收,设备既可以发送批量数据包,也可以发送一个STALL 包表示当前Endpoint 正忙,暂时没有数据要发送。 输出:当主机要向设备发送批量数据包,首先发送一个OUT 令牌后紧跟着发送批量数据包。如果OUT 令牌或者数据包存在错误,设备就会忽略这些包。如果设备的Endpoint 缓冲是空的,并且它已经把数据放到endpoint 缓冲
图 12 FTL 扇区映射[1]Figure 12 FTL sector relocation[1]上图形象地描述了 FTL 的工作机制。对于 Windows 操作系统看到的 NANDFlash 是一个块连续的块设备,而 NAND Flash 的物理地址是不可能连续的,必须通过 FTL 层将操作系统发过来的逻辑地址转换成 NAND Flash 非连续空间对应的物理地址。PCMCIA 组织的 FTL 规范中将地址分成三类:虚拟地块、逻辑地址、物理地址。虚拟地址是指 PC 机文件系统 FAT 层给出的地址,是以扇区为单位的。例如虚拟地址为 500,它表示文件系统的第 500 个扇区。逻辑地址是指虚拟地址经过 FTL 层的转换,映射到别一个地址,此地址也是以扇区为单位的。物理地址是指逻辑地址所对应的 NAND Flash 中具体的物理存储地址。FTL 规范了提到的“块”,均是指文件系统扇区的概念,并非 NAND Flash 的物理块。FTL 规范了采用了三级映射的方法。本文固件端设计的 NandFlash 地址映射和解析主要采用二级映射的方法,将 PC机给的地址称为逻辑地址,将 NAND Flash 的实际地址称为物理地址,且本小节中提到的“块”均是指 NAND Flash 的物理块。
【引证文献】
相关硕士学位论文 前3条
1 李颢;移动存储介质控制管理系统[D];西安电子科技大学;2011年
2 毛旭富;BCH编解码器在NAND Flash主控中的研究与优化实现[D];上海交通大学;2013年
3 宋默;基于某品牌安全U盘的量产工具研发[D];吉林大学;2013年
本文编号:2775354
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2775354.html