基于PCI总线芯片CH365的数据密码卡设计
扫描二维码
随时随地手机看文章
引言
在信息化时代的今天,计算机技术的飞速发展,给人们的生产和生活带来了巨大便利,以前复杂的工作,现在只要单击鼠标即可完成,因此,计算机已经成为人们日常工作和生活的一部分,人们对计算机的依赖程度越来越高,没有计算机的生活简直难以想象。随着计算机在生产和生活中占剧比重的加大,信息安全问题也显得突出重要,失泄密案件时有发生。小到企业商业机密被窃取,给企业造成巨大的经济损失;大到国家安全和军事机密被窃取,给人民的生命财产安全带来严重威胁。在铁路军交管理系统中,对军列的调度是采用密码管理的,这些密码标识了重要的军事目标,同时也只有通过此密码才能访问调度软件,从而调度军列。如果这些密码失窃,重要的军事目标将暴露,同时对军列的调度将出现混乱甚至引发安全事故。因此,对这些密码进行管理显得尤为重要。在这样的背景下,本文研制了一种能有效安全管理机密数据的密码卡。
1 CH365的功能特点
现在主流的PCI接口芯片是PLX公司的PCI905x系列芯片,此类芯片功能强大,有多种工作模式,数据传输速率高,但价格相对偏高,而且需要编写相应的硬件驱动程序。而CH365则是一款国产的廉价PCI接口芯片,它可以将PCI总线的时序转换为类似ISA总线时序,以便于后续与数字信号处理器、FPGA以及MCU等接口。由于CH365的生产厂商提供了丰富的硬件驱动程序,因此,软件编程人员只要调用相应厂商提供的动态连接库,即可完成对器件的操作,而且操作十分简便。
CH365支持I/O端口映射、存储器映射、扩展ROM以及中断。CH365可将32位高速PCI总线转换为简单的类似于ISA总线的8位主动并行接口,以用于制作低成本的、基于PCI总线的计算机板卡,也可将原先基于ISA总线的板卡升级到PCI总线上。PCI总线与其它主流总线相比,速度更快,实时性更好,可控性更佳,所以,CH365非常适用于高速实时的I/O控制卡、通讯接口卡、数据采集卡、电子盘、扩展ROM卡等。它的主要特点如下:
(1)可将基于32位PCI总线的从设备接口转换为主动并行接口,包括8位数据,16位地址,I/O读和写,存储器读和写;
(2)可以设定PCI板卡的设备标识(VendorID,Device ID,Class Code等);
(3)能以字节、字或双字为单位对I/O端口或者存储器进行读写;
(4)支持本地硬件定址功能,可自由选择I/O地址;
(5)直接升级ISA板卡到PCI总线,完全不需要修改I/O板卡的相关软件;
(6)芯片本身无需驱动程序即可工作,而且升级ISA板卡可以不需要躯动程序。
2 CH365的内部结构和信号线
图1所示是CH365内部的主要结构。CH365对PCI总线的各种信号进行译码后,可产生内部数据总线D31~D0、内部地址总线 A31~A0、读写I/O端口信号、读写存储器等信号。结构图右侧的信号是CH365提供给本地端的各个外部引脚。地址线A15~A0用于提供相对于基址的偏移地址:数据总线D7~D0在读操作时用于输入数据,在写操作时用于输出数据;IOP_RD用于提供I/O读选通脉冲信号;IOP_WR用于提供 I/O写选通脉冲信号;MEM_RD用于提供存储器读选通脉冲信号,MEM_WR用于提供存储器写选通脉冲信号。由于CH365提供的地址线、数据线、读写选通信号线类似于ISA总线的信号线,所以,非常适合将ISA板卡升级到PCI总线上。在I/O读写操作期间,CH365的A7~A0输出的是I/O端口的偏移地址,它提供给外部设备的有效偏移地址范围是00H~EFH,外部设备可进一步对A7~A0进行译码以产生二级片选信号。在I/O操作期间,CH365的A15~A10保持不变,但可以由内部寄存器事先设定为高电平或低电平。如果使用本地硬件定址功能,则可以对A9~A0进行地址译码,并通过IOP_HIT引脚向CH365请求本地定址,以实现与ISA总线相兼容的000H~3FFH地址范围内的I/O端口地址。在存储器操作期间,CH365的A14~A0可输出存储器的偏移地址,提供给外部设备的有效偏移地址范围是0000H~7FFFH。在存储器读写操作期间,CH365的 A15保持不变,但可以由内部寄存器事先设定为高电平或低电平,以用于存储器地址线的扩展或者页面选择。
3 PCI总线的数据密码卡硬件设计
3.1 数据密码卡的组成
数据密码卡实际上就是一个基于计算机PCI总线的板卡。它区别于普通板卡的地方主要是这块板卡中包含了大量的加密后的机密数据,这些数据存于板卡的FLASH存储器中。在军交系统中,这些数据代表了车辆的编组调度等信息,军交管理软件直接应用解密后的数据来对车辆实施调度,但这些解密后的数据对操作人员来说是透明的。为了防止不法分子蓄意破解数据,上级主管部门会不定期的将原始数据重新加密,然后写入FLASH存储器中,再将重新加密过的 FLASH存储器下发给各个部门。采取多种加密策略的目的主要是为了防止数据密码卡被盗,或者其中的FLASH存储器被盗而使密码被破译。
数据密码卡的组成框图如图2所示。
3.2 CPLD设计
CPLD的设计是本数据密码卡的核心。设计选用LATTICE公司生产的LATYICE1032。它所包含的模块主要有三块。其一是数据密码卡访问合法性确认和数据解密模块;其二是地址译码模块;三是ROM地址产生器模块。其顶层设计图如图3所示。
4 各模块核心部分的ABEL语言实现
4.1 ROM地址产生模块
下面是产生ROM地址的程序代码:
addrl:=addrl+1:
when addr1==^hlff then c0=1
else c0=0;
when e0 then addr2:=addr2+1
else addS:=addr2;
从上述程序中可以看出,ROM中的数据不是按照地址顺序排放的,也就是说,即使是得到了这片ROM,用编程器把数据读出,读出的数据也是无法破解的。[!--empirenews.page--]
4.2 访问合法性确认和数据解密模块
访问合法性确认和数据解密程序代码如下:
该操作的保密措施主要是两点:一是在当访问者所输入的权限密码正确后,才能使pass0~pass4信号有效,从而使OE信号有效来读取ROM 中的数据;二是从ROM中读到的数据,还必须经过解密后才能得到真正的数据,解密的措施是ROM中读到的数据与某一数据进行异或处理。
5 结束语
基于CH365设计的PCI总线数据密码卡与PCI总线的接口比较简单,数据保密性强,操作简单。目前此卡已成功用于铁路调度系统之中。(中电网 作者:张显才 韩德红)