新闻中心

EEPW首页>嵌入式系统>设计应用> 基于PCI总线加密卡硬件设计

基于PCI总线加密卡硬件设计

作者: 时间:2012-04-14 来源:网络 收藏


  4 密码服务的PCI传输控制

  完成了密码算法模块后,还要设计一个接口控制模块,将其连接到PCI接口模块,以实现密码模块与PCI主机的通信连接。下面以3DES密码模块为例,介绍面向PCI传输的密码算法接口控制模块的设计。图5为该模块的设计框图,在PC机与的通信过程中,驱动程序先将数据按32bit分组送入PCI中指定的IO存储器地址中。一次加密服务流程如下:数据首先进入输入缓存模块,分别将3DES密钥Key1、Key2送入I/O地址70h,74h,78h,7ch;数据送入80h,84h;命令送入88h。待数据传输完毕,由驱动程序向密码算法模块发送启动信号,在计数器模块的控制下,命令、IV向量、密钥、数据由缓存模块依次进入密码运算模块;密码运算完毕后向PCI模块发送ready信号,并把数据处理结果放入输出缓存地址9ch和a0h中,驱动程序在检测的ready信号为高时从输出缓存地址取走数据。


  5驱动程序设计及系统测试

  PCI为主机提供加/解密服务,并为应用软件提供相应的软件接口,主要包括用Visual C++开发的WDM驱动程序和应用程序编程接口函数库两个部分[4]。在Windows2000系统中可以使用多种驱动程序,如虚拟设备驱动程序(VDD)和内核模式驱动程序。其中,WDM驱动程序是一种PnP驱动程序,它遵循Windows2000即插即用协议的内核模式驱动程序,同时还遵循电源管理协议,并能在Windows98、Windows2000和Windows XP间实现源代码级兼容。

  应用程序与WDM通信时,应用程序先调用CreateFile函数打开设备,然后调用DeviceIoControl与WDM进行数据通信,最后用CloseHandle关闭设备。主机应用程序用Visual C++开发生成,主要包括系统的用户界面设计、用于输入用户数据、显示运算后的结果数据、调用驱动程序实现某种功能。驱动程序与应用程序之间的通信分为同步方式和异步方式。若采用同步方式,则应用程序调用DeviceIoControl函数时将被阻塞,等待PCI设备进行数据处理,完成相应操作,直到驱动程序给应用程序返回值后,应用程序才会接着运行。若采用异步方式,则应用程序调用DeviceIoControl函数将立刻返回,不等待驱动程序对数据的操作。这样,如果在应用程序退出之前,驱动程序还没完成I/O操作,就需要编写超时取消I/O操作的代码,确保在应用程序退出之后正常关闭设备。异步方式相对比较复杂,考虑到设计中算法对时序要求高,所以本设计选择同步方式实现计算机与PCI设备之间的通信。

  3DES加密算法和驱动程序全部完成后,为了对整个加密卡的功能进行验证,开发了一个文件加密服务程序对加密卡进行测试。测试过程如下:

  第一步,系统安装及初始化。首先将加密卡插入到PCI插槽中,将硬件设计下载到FPGA配置芯片后,重新上电,装载驱动程序,最后,启动应用程序开始整个加密卡的测试工作。
  第二步,加密功能测试。输入3DES的两个加密初始密钥Key1、Key2,选择一个事先编辑的文本文件Plain.txt为待加密的明文数据。模式选择为加密的情况下,所得密文数据输出到Cipher.txt文件中。
  第三步,解密功能测试。为了便于比较,仍然选用Key1、Key2为3DES的两个解密初始密钥。导入Cipher.txt作为待解密的密文数据,在模式选择为解密的情况下,所得明文数据导出在Plain1.txt文件中。经过比较,Plain.txt和Plain1.txt完全一致。

  上述测试结果表明,加密卡驱动程序、PCI接口IP核能够正确将应用程序提供的数据传输给密码算法模块,密码算法模块正确完成加解密操作后,数据能正确通过PCI接口IP核、驱动程序传输到应用程序,即加密卡设计实现了预定的功能。下一步还要对系统的性能进行测试,优化系统结构提高系统的性能。

  本文讨论一个基于FPGA实现的PCI加密卡的设计与实现过程,以3DES算法为例重点讨论了密码算法及其与PCI接口模块之间的数据传输实现方法,对包括驱动程序在内的加密卡进行了功能测试。作为一个功能完善的加密卡,要为PC机提供数据加密、数据完整性、访问控制等服务,除了提供3DES加密算法以外,还需要支持AES等加密强度更高的对称密码算法、非对称算法、散列算法、签名验证算法等,这也是下一步要做的主(接上页)
要工作。

参考文献
[1] 成都天融信网络安全技术有限公司.PCI加密卡[EB/OL].http://www.westsec.com.cn,2006.
[2] 刘建中,李清宝.基子加密卡硬件设计.电子技术应用[J],2004,30(1):7-9.
[3] 刘红,李勃,常青,等.基于IP核的接口设计与实现[J].电子技术应用,2006,32(6):6-9.
[4] 杜欣,马秦生.PCI传输卡的WDM驱动程序设计[J].电子技术应用,2003,29(12):22-24.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭