USB软件加密卡及其驱动程序的设计与开发

USB软件加密卡及其驱动程序的设计与开发,第1张

【摘 要】 详述了USB软件加密卡及其驱动程序这一热门技术。根据实践经验,重点介绍了USB接口芯片选择和应用。阐述了USB驱动程序基本功能的开发,还提出了开发驱动程序的加密功能的新观点,具有很强的实践意义。
  关键词:USB加密卡,FPGA,驱动程序,即插即用


1 引 言
  软件加密卡(又称软件狗)是一种智能型加密工具,是一个安装在并口、串口等接口上的硬件电路。当被保护的软件运行时,程序向插在计算机上的加密卡发出查询命令,加密卡迅速计算查询并给出响应,正确的响应能保证软件顺利运行。如果没有软件加密卡,程序不能运行。最新的第四代软件加密卡内置一个单片机芯片,芯片中存有特定的算法程序,可将读出的密钥进行加密变幻,以对抗逻辑分析仪。
  USB软件加密卡是USB接口技术与第四代加密卡技术结合的产物,因而与其它加密卡相比具有一些明显优势:首先,USB的数据传输速度快,USB1.0协议为12M比特率,USB2.0版可达480M比特率;其次,USB的底层数据传输具有特定的打包方法和编码格式,这样就增加了加密数据在传输过程中被截获及解密的难度。最后,USB设备的即插即用性(plug-and-play)极大地方便了用户的使用,比如,要在其它微机上使用被保护软件时,只要一拔一插即可,免除了开机箱和重启动的麻烦。
2 USB软件加密卡的硬件设计
2.1 USB接口芯片
  USB接口芯片的种类很多,但无论何种接口芯片,都有两个基本功能:一是与上位机通信;二是提供对外围电路CPU的接口。也就是说接口芯片架起了计算机与外围设备的桥梁,使开发者不用关心复杂的USB协议是如何将数据传送到主机的。
  现有的支持USB1.0协议的接口芯片可大致分为两类:一种为内部集成了微控制器,如Intel 8×930Ax/Hx内嵌一个8051CPU;另一种则只提供了对外围电路访问的读写接口,如USBN9603。在加密卡的设计中,建议采用第二种类型,因为对于较复杂的加密算法,8051CPU处理起来很吃力。下面以USBN9603为例介绍接口芯片的使用。
  图1描述了USBN9603的逻辑结构,可以看到芯片对外提供了8位并行接口,该接口为数据/地址复用接口,芯片内部自带地址锁存器,配合CS,RD,WK信号完成对内部寄存器的读写 *** 作。USBN9603有一外部中断INTR管脚,当USB接口有状态变化时可产生中断信号通知CPU,通过软件置中断屏蔽寄存器位,可控制中断信号的发生。
  USBN9603有7个与主机相连接的端点,包括一个双向命令传输端点、三个接收端点、三个发送端点,可支持中断(Interrupt)、批量(Bulk)和等时(Isochronal)传输模式。USBN9603传输器(Transceiver)配有的电压调节器通过软件置位可产生上拉电压,通过上拉电阻接D+则接通全速模式,接D-则接通低速模式。
  USBN9603使用外接晶振,同时有一个对外的时钟输出器,产生对外的时钟信号,它的输出频率可由软件控制。USBN9603的USB接口引擎由物理层和媒介通道控制器组成。物理层包括数字时钟电路、监视电路、位填充与清除逻辑电路等。媒介通道控制器层要完成数据包格式化、循环冗余检测、端点地址侦察等任务,并提供对端点发出的NAK,ACK和STALL回应的控制。接口引擎还要负责侦察和报告USB总线事件,如复位,挂起和恢复。

USB软件加密卡及其驱动程序的设计与开发,第2张

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2428554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-02
下一篇 2022-08-02

发表评论

登录后才能评论

评论列表(0条)

保存