信息安全对于企业、政府、国防等部门有着极其重要的意义。一般现有的认证方法都通过存储介质保存密码,使用比较器比对输入密码正确与否,此方法保密性差,易于破解。本文通过特有的MEMS强链和百万门级的FPGA来对SATA硬盘进行身份认证。实现物理加密。密码转换为相应的密钥并以机械结构的形式成为MEMS强链的核心部位,即根据齿轮组的运行完成对密码的比较,来完成对口令的验证,利用PCI9054芯片快速完成对口令和MEMS返回值的传输.根据密码所形成的控制流由FPGA对MEMS强链进行控制。整个系统快速、简洁、安全性高。
1系统的总体构成
该系统由主机、物理认证的FPGA专用板和MEMS强链组成,其中主机里面装有连接和扫面模块和用于存储重要数据的SATA硬盘;物理认证FPGA专业板包括:PCI控制器、FPGA、SATA硬盘、EEPROMPCI配置芯片、MEMS控制模块、密码处理模块和MEMS密码锁驱动电路等构成。图1描述了整个系统的硬件布局。
图1系统结构框架图
本文使用MEMS密码锁特有的机械结构产生相应的反馈信号,用此反馈信号参与物理认证系统。计算机中装有两块硬盘,一块硬盘直接与主板IDE口相连。其中装有操作系统,数据是普通数据,进入不需要物理认证,可以直接读取。另一块是SATA硬盘,它通过连接和控制模块与主板SATA接口相连,开机后,由于与硬盘相连的数据线是断开状态,则该硬盘不可见。此硬盘需通过MEMS密码锁认证,若认证通过,产生一个反馈信号,此反馈信号由物理认证的FPGA专用板通过PCI控制器传给主机,主机来对反馈值进行判断,若密码正确,主机开启连接和扫描硬件模块,把与SATA硬盘相连的数据线接上,同时进行扫描硬件改动,这样SATA硬盘就被系统识别。
主窗口显示从键盘输入密码,然后主机通过插在PCI插槽上的PCI控制器,PCI控制器主要是由PLX公司的PCI9054芯片构成,它和FPGA都受板上50MHz系统时钟的控制。通过PCI控制器把密码传输到FPGA内部的PCI本地控制器,由PCI本地控制器将密码传给FPGA,由FPGA根据得到的密码来驱动MEMS驱动电路,MEMS驱动电路驱动MEMS强链根据输入的密码来运行,如果密码正确,也就是驱动电路的指令与MEMS强链内部结构固化的密码一样,密码锁就能正确走完,然后返回Ox000000FF(十进制的255);如果密码错误,MEMS强链被卡死,并返回0。同时PCI本地控制器将返回值再通过PCI9054传送回主机,并在主窗口上显示。如果返回信号是0x000000FF的话,启动联接控制程序,实现扫描资源管理器,接通SATA硬盘,正常传输数据。
2MEMS强链与其相关的控制模块
MEMS强链的棘爪能卡住棘轮,从而能精确定位到固定的位置,棘爪装有电磁驱动型电机,使其具有误码鉴别与自复位功能,因而可用于信息安全,实现密码锁的功能。鉴码机构由两组电磁型微步进电机驱动反十涉齿轮集A和B,反干涉码轮集中机械周化了密码。反干涉齿轮集在正确解码时,码齿之间互相没有接触;当出现错码时,码齿相互干涉,反干涉齿轮集卡死。使用光电耦合机构,在正确接收到24位密码时光电能量耦合,系统开启。图2是MSMS强链结构图。
图2MEMS强链组织结构图
3PCI控制器
PCI控制器主要由PCI9054芯片和EEPROMPCI芯片组成。它支持主模式、从模式、DMA传输方式。本文利用PCI9054在C模式下传输32位的密码和32位返回值。工作时间的写入时序图如图3。本地总线周期可是是single周期或突发周期,BLAST#信号被用于决定是一个single周期被执行还是一个突发周期被执行。本地总线IniTIator(本地总线访问内存和I/O)访问PCI9054必须是对32位non-pipelined总线才可以。其中,LA是地址总线;LD是数据总线;LBE是字节使能信号。
图3PCIIniTIator状态下写时序图
BLAST#、READY#、ADS#和FPGA相连。只有在ADS信号在高电平,BLAST在低电平,LWR为高电平。LA[31:2]为高时,表明PCI9054开始一个有效的写数据周期,同时,FPGA使写标志有效,并把数据放到本地总线上,此时本地总线上才接收到由外部总线上写入的数据。只有在ADS信号为高,BLAST为低,LWR信号为低,同时LA[3l:2]接受到地址时,表明PCI9054开始一个有效的读数据周期,同时,下位机的FPGA使读使能有效,并把返回值放到本地总线上,LD[3l:0]才能接收到数据。
EEPROMPCI配置芯片与PCI控制器直接相连。通过存储在配置芯片内部的PCI驱动程序正确驱动PCI控制器,完成主机与PCI控制器控制信号、地址线和数据线的配置,使PCI控制器正常工作。
4AlteraCycloneFPGA
Cyclone系列现场可编程门阵列是基于1.5V,O.13μm.全铜互联SRAMT艺,最高内嵌20,060个逻辑单元、最大288KbitsRAM。内置锁相环和一个专用双倍速率(DDR)界面支持用以双倍速率同步动态随机存储器(DDRSDRAM)和快速循环动态随机存储器(FCRAM,Cyclone可以提供低功耗的数据链路解决方案。cvclone支持多种标准的I/O(输入输出),支持ASSP和ASIC设备。支持多种IP核。
5SATA硬盘
SATA,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。SATA规范将硬盘的外部传输速率理论值提高到了150MB/s。SATA的优势是支持热插拔,传输速度快,执行效率高等。
热插拔是最希望看到的功能,但是现在的SATA硬盘的热插拔并不是想象中的把硬盘在开机的状态下接入主机,就能正常的传输数据,而是需要启动资源管理器,进行“扫描检测硬件改动”的操作后才能正常识别硬盘盘符。根据这个情况,本文设计了“连接与扫描硬件改动模块”代替手动的“扫描检测硬件改动”操作。该硬盘有数据线和电源线,在开始的时候,只接通电源线,用软件来控制数据线是否连接,当物理认证通过后,主机启动连接和扫面硬件模块,连接上数据线。然后使主机自动枚举检测所有的硬件,看是否有新硬件安装,有就使其正常联接使用。若密码错误,主机不启动该模块,继续保持数据线断开,SATA硬盘还是不可见。
6软件实现
软件有两部分,首先是上位机控制部分,该部分是用VC++写的上位机窗口对话框和联接控制程序;下位机控制部分主要是本地PCI控制程序、FPGA驱动程序以及MEMS强链控制程序,该部分是用verilogHDL编写,调试成功之后烧写在与FPGA相连的只读存储器EPCS1里面。上位机和下位机的控制程序通过PCI9054有机的联接在一起。
首先用户点击主窗口的用户对话框,在上面的编辑框内输入密码,点击“确认”按钮,主机将数据放在总线上,同时FPGA内部的本地总线控制器不断的检测ADS信号,BLAST信号,LWR读写信号信号,和LA[3l:2]地址总线信号,当他们满足写有效时,表明FPGA可以接收数据,于是数据通过本地总线将密码数据传到FPCA内部指定的寄存器里面,同时由MEMS控制模块根据所得的密码来控制MEMS强链,若密码与MEMS强链内部结构密码一致,MEMS强链走完全程,FPGA返回八位1(即十进制的255),接着启动连接和扫描硬件程序扫描硬件,SATA硬盘就被系统识别,所加密硬盘的盘符在我的电脑中显现。如果密码错误的话,MEMS强链被卡死,返回0。为了增加可视化.本地总线控制器当检验到ADS信号,BLAST信号,LWR信号.和LA[3l:2]读有效时将返回值返回到主窗口的“返回值”编辑框中。
当输入正确的密码,这里我们设置的正确密码是12345678,上位机先把密码传如到下位机存储起来,时序图见图4,ld数据总线上的数据是12345678,当密码与固化的密码比较以后,正确的话返回255。
7结束语
该系统已经初步实现了主机、硬盘、FPGA之间的控制信号、应答信号、读写信号,及这些信号协调工作完成安全认证和加密的工作机理和硬件实现技术方案。该系统基于先进的FPGA芯片和特有的MEMS强链,利用PCI接口进行通信。这样可以把整个系统做成一个小巧的认证卡装在主机上,使系统美观,便于携带。
本文的创新点:l、将密码转换为MEMS强链的内部结构实现真正的物理加密;2、利用PCI接口实现主机与FPGA的数据交换,速度更快,稳定性更好;3、利用FPGA和MEMS驱动电路来控制MEMS强链.可靠性高。