`
huozheleisi
  • 浏览: 1238077 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
基于PCI总线加密卡硬件设计



摘要:介绍基于PCI总线加密卡的硬件组成部分。该加密卡汲取了现代先进的加密思想,实现了高强度加密功能。

关键词:加密卡 PCI总线 PCI9052 ISP 单片机
加密是对软件进行保护的一种有效手段。从加密技术的发展历程及发展趋势来看,加密可大体划分为软加密和硬加密两种。硬加密的典型产品是使用并口的软件狗,它的缺点是端口地址固定,容易被逻辑分析仪或仿真软件跟踪,并且还占用了有限的并口资源。笔者设计的基于PCI总线的加密卡具有以下几个优点:第一,PCI总线是当今计算机使用的主流标准总线,具有丰富的硬件资源,因此不易受资源环境限制;第二,PCI设备配置空间采用自动配置方式,反跟踪能力强;第三,在PCI扩展卡上易于实现先进的加密算法。
1 总体设计方案
基于PCI总线的加密卡插在计算机的PCI总线插槽上(5V 32Bit连接器),主处理器通过与加密卡通信,获取密钥及其它数据。加密卡的工作过程和工作原理是:系统动态分配给加密卡4字节I/O空间,被加密软件通过驱动程序访问该I/O空间;加密卡收到访问命令后,通过PCI专用接口芯片,把PCI总线访问时序转化为本地总线访问时序;本地总线信号经过转换处理后,与单片机相连,按约定的通信协议与单片机通信。上述过程实现了主处理器对加密卡的访问操作。

图1 硬件总体设计方案

下面以主处理器对加密卡进行写操作为例,阐述具体的实现方法。加密卡采用PLX公司的PCI9052作为PCI总线周期与本地总线周期进行转换的接口芯片。PCI9052作为PCI总线从设备,又充当了本地总线主设备,对其配置可通过EEPROM 93LC46B实现。主处理器对加密卡进行写操作,PCI9052把PCI总线时序转化为8位本地数据总线写操作。这8位本地数据总线通过Lattice公司的ispLSI2064与单片机AT89C51的P0口相连,2064完成PCI9052本地总线与AT89C51之间的数据传输、握手信号转换控制等功能。2064对8位本地数据总线写操作进行处理,产生中断信号。该中断信号与AT89C51的INT0#相连,使AT89C51产生中断。AT89C51产生中断后,检测与其P2口相连的本地读写信号WR#、RD#、LW/R#。当WR#为低电平、LW/R#为高电平时,AT89C51判断目前的操作是否为写操作。确认是写操作后,AT89C51把P0口上的8位数据取下来,然后用RDY51#(经2064转换后)通知PCI9052的LRDYi#,表明自己已经把当前的8位数据取走,可以继续下面的工作。PCI9052收到LRDYi#有效后,结束当前的8位数据写操作。PCI总线的一次32位数据写操作,PCI9052本地总线需要四次8位数据写操作,通过字节使能LBE1#、LBE0#区分当前的8位数据是第几个字节有效。
加密卡硬件总体设计方案如图1所示。
2 硬件各组成部分说明
2.1 PCI9052部分
PCI9052是PCI总线专用接口芯片,采用CMOS工艺,160引脚PQFP封装,符合PCI总线标准2.1版。其总线接口信号与PCI总线信号位置对应,因此可直接相连,易于PCB实现。PCI9052的最大数据传输速率可达132MB/s;本地时钟最高可至40MHz,且无需与PCI时钟同步;可通过两个本地中断输入或软件设置产生PCI中断。它支持三种本地总线工作模式,实际设计采用地址和数据线非复用、8位本地数据总线、非ISA模式。
PCI9052内部有一个64字节PCI配置空间,一个84字节本地配置寄存器组。对PCI9052的配置可由主机或符合3线协议的串行EEPROM完成(注:ISA模式必须由串行EEPROM完成配置)。实际设计采用Microchip公司的93LC46B存放配置信息。系统初始化时,自动将配置信息装入PCI9052,约需780μs。如果EEPROM不存在或检测到空设备,则PCI9052设置为默认值。
在设计中,EEPROM用到的配置项目有:设备ID:9050;厂商ID:10B5;分类代码:0780;子系统ID:9050;子系统厂商ID:10B5;支持INTA#中断,PCI 3C:0100;分配4字节本地I/O空间:(例LAS0RR)0FFFFFFD;其它本地地址空间未使用:00000000;4字节本地I/O空间基地址(模4对齐):(LAS0BA)01200001(仅为示例);4字节本地I/O空间描述符:(LAS0BRD)00000022(非猝发、LRDYi#输入使能、BTERM#输入不使能、不预取、各内部等待状态数均为0、8位本地数据总线宽度、小Endian模式);中断控制/状态,Local 4C:00000143(LINTi1使能、LINTi1边沿触发中断选择使能、LINTi2不使能、PCI中断使能、非软件中断、ISA接口模式不使能);User I/O、从设备应答、串行EEPROM、初始化控制,Local 50:00024492。有两点要注意:一是设计中采用PLX公司推荐使用的串行EEPROM 93LC46B按字(16 bit)为单位组织;二是EEPROM开发器编辑输入与手工书写的顺序对应关系,以厂商ID:10B5为例,在开发器编辑输入的是b510,而不是10B5。
PCI9052本地信号的含义是:LAD[7..0]:本地8位数据总线;WR#:写有效;RD#:读有效;LW/R#:数据传输方向,高电平为写操作,低电平为读操作;LBE1#和LBE0#:字节使能,表明当前LAD[7..0]上的数据是第几个字节(0到3);BLAST#:PCI9052写数据准备好或读数据已取走;LRDYi#:外部设备(此设计指单片机)已把PCI9052写操作数据取走或读操作数据准备好;LINTi1:外部设备通过LINTi1向主机发送INTA#中断,当单片机验证密钥正确,向主处理器发送请求,表明可以开始从中读取相关数据。
需注意的是,PCI9052在使用时,某些引脚要加阻值为1kΩ~10kΩ的下拉或上拉电阻。因此在实现时,给MODE、LHOLD、LINTi1引脚加下拉电阻,CHRDY、EEDO、LRDYi#引脚加上拉电阻。

图2 PCI9052本地写时序

以主处理器向单片机写数据为例,图2给出了PCI9052的本地写时序。
2.2 ispLSI2064部分
为降低数据被解析的风险,应尽量减少使用分离元件。因此在设计中选用了Lattice公司的CPLD ispLSI2064。该芯片采用EECMOS技术,100引脚TQFP封装,拥有2000个PLD门,64个I/O引脚另加4个专用输入,64个寄存器,3个全局时钟,TTL兼容的输入输出信号。2064具有在系统可编程ISP(In-System Programmable)功能,可方便实现硬件重构,易于升级,降低了设计风险,并且安全性能高。PCI9052与单片机之间的8位数据线进行双向数据传输,不能简单地直接相连,需要进行传输方向控制和数据隔离。故用2064作为PCI9052本地信号与单片机信号进行信号传递的接口,图3给出了8位数据信号双向传输的原理图。2064的开发软件ispDesignExpert 8.2版支持VHDL、Verilog HDL、Abel等语言及原理图输入,且通过专用下载电缆可把最终生成的JEDEC文件写入2064,实现编程。在设计时采用了原理图输入的方法。
原理图中用到的BI18的功能描述为:当OE=1时,XB为输出,A为输入,即XB=A;当OE=0时,XB为输入,Z为输出,即Z=XB。FD28的功能描述为:8位D触发器(带异步清除)。结合PCI9052本地读写时序,可以分析得出,在进行读写操作时,图3实现了LAD[7..0]与D[7..0]之间正常的数据传输;在非读写时,双方数据处于正常隔离状态。
2.3 单片机AT89C51部分
单片机采用ATMEL公司的AT89C51。这是一个8位微处理器,采用CMOS工艺,40引脚DIP封装。它含有4K字节Flash和128字节RAM,且自身具有加密保护功能。单片机不进行外部存储器和RAM的扩展,程序存储和运行均在片内完成,有效地保证了加密强度。

图3 LAD[7..0]与D[7..0]之间的数据传输

单片机的P0口接图3的D[7..0],并加10kΩ的上拉排阻。WR#、RD#、W/R#、BE1#、BE0#作为单片机输入信号接P2口。PCI9052写数据准备好或读数据已取走信号REQ9052#作为单片机输入信号接P3.2(INT0#);写数据单片机已取走或读数据单片机准备好信号RDY51#作为单片机输出信号接P1.0;接P1.1的OVER51#作为单片机输出信号,经2064接PCI9052的LINTi1,通过LINTi1向主机发送INTA#中断请求。
基于PCI总线的加密卡,依照PCI总线标准2.1版,通过动态分配4字节I/O空间,实现主处理器与卡上单片机之间的握手通信。被加密软件通过访问加密卡,获取软件正常执行的相关权限。在加密卡不存在的情况下,被加密软件因得不到相关授权而无法运行,从而实现了加密功能。在单片机的存储器里,除了存放密钥之外,设计者还可以把被加密软件的部分程序、算法或常数写入单片机的存储器,在加密卡不存在的情况下,被加密软件的功能是不完整的,从根本上防止了软件破解。
分享到:
评论

相关推荐

    嵌入式系统/ARM技术中的基于PCI总线加密卡硬件设计

    摘要:介绍基于PCI总线加密卡的硬件组成部分。该加密卡汲取了现代先进的加密思想,实现了高强度加密功能。 关键词:加密卡 PCI总线 PCI9052 ISP 单片机加密是对软件进行保护的一种有效手段。从加密技术的发展历程及...

    嵌入式加密卡设计

    本课题研制的加密卡源自泳池监控系统,采用嵌入式技术和PCI总线技术相 结合,利用“代码移植”的加密原理,即PC端应用软件的关键代码和数据“消 失”了,被安全地移植到加密卡的硬件中保护起来。在需要使用时,PC端...

    一种基于FPGA的PCI加密卡设计

    利用FPGA设计实现了一种基于PCI总线接口的纯硬件加密卡,为PC机提供加密、签名等服务。对采用VHDL描述的PCI接口IP软核及其应用方法进行了分析;采用VHDL设计了3DES、MD5等算法模块,并设计了其与PCI接口IP核之间的...

    基于FPGA与PCI总线的并行计算平台设计实现

     PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在...

    青翼科技基于PCIe总线架构的20G以太网实时抓包存储卡

    PCIE731-1是一款基于PCI Express总线架构的20G以太网实时抓包存储卡,该产品为半高半长PCIe卡,适合于于目前主流半高机箱的服务器或超微工作站。 板卡采用FPGA控制器,可以实现2路共20G以太网数据的实时收发能力,...

    基础电子中的基于FPGA与PCI总线的并行计算平台设计实现

     PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在...

    加密卡资料以及封装的代码.7z

    渔翁国密硬件算法封装,渔翁PCI-E密码卡系列产品是山东渔翁信息技术股份有限公司独立自主研,在国内率先采用PCI-E总线技术的高速密码设备,遵循国家密码管理局关于PCI密码卡的相关技术规范,能够为各类安全平台提供...

    基于FPGA PCI的并行计算平台实现

     PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在普通PC...

    基于FPGA+PCI的并行计算平台实现

     PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在普通PC...

    论文研究-基于FPGA椭圆曲线密码体制的研究.pdf

    将模乘算法、模逆算法、曲线点加算法、曲线点减算法、点乘算法、ECElgamal加密/解密方案、总线命令控制等在FPGA上完成仿真、综合和板级验证,并设计出具有PCI局部总线传输功能的加密/解密适配卡。研究中提出了新的...

    EDA/PLD中的基于FPGA PCI的并行计算平台实现

     PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在普通PC...

    高速通用密码卡之西电捷通综合性测试分析

    密码及其安全协议技术已成为网络安全和信息安全的重要基础,在商用信息安全领域,过去被大多数核心密码设备所采用的PCI密码卡,由于其规范定义的总线速度最高只有133MB/s,性能随之受限,已无法满足大型企业网络宽带...

    EDA/PLD中的基于FPGA+PCI的并行计算平台实现

     PCI总线(外设互联总线)与传统的总线标准——ISA总线(工业标准结构总线)相比,具有更高的传输率(132MBps)、支持32位处理器及DMA和即插即用等优点,用于取代ISA总线而成为目前台式计算机的事实I/O总线标准,在普通PC...

    (精品计算机科学与技术专业毕业设计选题参考.doc

    基于PCI总线的温度测试系统 "34.虚拟电子商务系统 " "35.基于USB的图形扫描信息处理系统 "36.基于CAN的高性能MCU控制解决方案 " "37.基于ISA总线的采样控制卡 "38.单片机实验系统研究与开发 " "39.Windows环境...

    FPGA-嵌入式-电路-板卡-设计开发-承接-承包-外包

    1、提供基于Xilinx/Altera FPGA的高性能计算(HPC)硬件平台、FGPA加速卡,本硬件加速平台基于PCI Express总线,采用超高性能FPGA作为运算节点。在高性能计算(High Performance Computing)上表现出卓越的性能。...

    计算机科学与技术专业毕业设计选题参考(2).doc

    基于PCI总线的温度测试系统 "34.虚拟电子商务系统 " "35.基于USB的图形扫描信息处理系统 "36.基于CAN的高性能MCU控制解决方案 " "37.基于ISA总线的采样控制卡 "38.单片机实验系统研究与开发 " "39.Windows环境...

    计算机科学与技术专业毕业设计选题参考(1).doc

    基于PCI总线的温度测试系统 "34.虚拟电子商务系统 " "35.基于USB的图形扫描信息处理系统 "36.基于CAN的高性能MCU控制解决方案 " "37.基于ISA总线的采样控制卡 "38.单片机实验系统研究与开发 " "39.Windows环境...

    基于FPGA的身份认证智能卡设计

    本文提出了一种基于FPGA的身份认证智能卡的设计方案。在FPGA内部实现身份认证相关的数据加密运算,加密算法采用128 bit Rijndael算法。相关的身份信息和加密运算所需要的常量数据均存放在FLASH存储器中,加密后的...

    XPCI1C00运动控制卡用户手册

    XPCI1C00运动控制卡是一款新型的PCI总线运动控制卡。可以控制多个步进电机或数字式伺服电机,适合于多轴点位运动、插补运动、轨迹规划、IO控制等功能的应用。 XPCI系列运动控制卡需要配合MotionRT使用,安装方法...

Global site tag (gtag.js) - Google Analytics