基于USB2. 0控制器的软件狗设计及安全性分析
3. 2 硬件实现
本设计中采用Cypress 公司推出的CY7C68013A芯片, 该芯片属于EZ- USB FX2系列芯片, 是世界上第一个集成USB2.0 协议的微处理器, 它支持12Mb / s的全速传输和480Mb / s高速传输。
CY7C68013A芯片结构包括增强型8051 处理器、串行接口引擎( SIE )、USB2.0收发器、16KB 的RAM、4KB的FIFO 存储器、数据总线、地址总线以及通用可编程接口( GPIF)等, 如图3所示。
图3 CY7C68013A 芯片结构图。
USB 加密狗一般由USB控制器、单片机、外接存储器构成, 而CY7C68013A 将三者集成为一个芯片, 使硬件实现变得非常简单, 只需配置好外围电容、电阻即可。芯片提供了0、1、2、4、6、8 几个端点, 端点0和端点1仅由固件访问, 由于其余端点都是单向访问的, 在此使用端点2和端点6, 用于数据的发送和接收。
该芯片集成的增强型8051比标准8051有更快的执行速度以及更大的存储器空间, 因此, 它可以在较短的时间内完成比较复杂的算法, 而且不需另外扩展存储空间。芯片内部还有一个串行接口引擎S IE, 由它来完成大部分USB2.0协议的处理工作,这样大大减轻了固件程序的工作量。
软件设计主要包括三部分: 芯片固件程序、设备驱动程序、PC应用程序。
Cypress公司的EZ- U SB FX2开发套件提供了完整的CY7C68013A 驱动程序源代码、固件的框架、控制面板程序, 方便用户开发, 缩短了开发周期。本设计中的驱动程序就是对FX2开发套件中所带的驱动程序进行修改而得到的。利用提供的固件框架完成设备的初始化, 使用端点2和端点6的实时传输方式, 实时得到动态产生的PIN 码。
在本设计中, PC 应用程序是指与加密狗的接口程序, 选用VC6. 0 为开发平台来开发应用程序, 利用C reateF ile得到USB 句柄, 使用D ev iceIoControl函数来进行数据的接收和发送, 并编制U SB软件狗的主机接口函数, 将接口函数封装于usbdog. d ll文件中, 供被保护软件调用。
使用开发套件中提供的控制面板程序可以调试程序, 验证应用程序传输数据的准确性。
4 结束语
USB2. 0软件狗和其他软件狗相比有其独有的优越性。首先, USB 凭借其即插即用极大地方便了用户使用, 免除了开机箱和重启动的麻烦, 能够为个人笔记本电脑提供一个具有快速通信能力的数据加密设备。第二, USB2. 0的高速数据传输能力保证了运行过程中的动态加密, 其特有的打包方法和编码格式, 增加了加密数据在传输过程中被截获及解密的难度。第三, 采用USB 软件狗的PIN 码保护和动态口令相结合的方法, 避免了解密者获取和推算动态口令。第四, 本设计中采用Cypress 公司的CY7C68013A 芯片作为主芯片, 使得硬件电路设计简单, 占用空间小, Cypress公司提供的套件开发固件程序和驱动程序, 用VC6. 0 开发加密的软件平台, 极大地缩短了开发周期。
作为USB2. 0 技术和软件狗技术相结合的产物, USB 软件狗无疑会具有十分强大的生命力。
pid控制器相关文章:pid控制器原理
评论