
电子与封装
ELECTRONICS & P ACKAGING
总 第74期2009年6月
收稿日期:2009-02-18
基于FPGA 的SATA 硬盘加解密控制器设计
刘文国,李广军,林水生
(电子科技大学通信与信息工程学院,成都 610051)
摘 要:随着信息时代的到来,数据存储和保护的需求与日俱增,如何有效实现对硬盘数据的加密保护成为一个重要的课题。文章首先分析了目前常用的硬盘数据加密方法,并在比较各种加密方案的基础上给出了基于FPGA 的SATA 硬盘加解密控制器设计方案。基于SA TA2.0接口的广泛应用性,文章接着介绍了SATA 的体系结构,并由此给出了系统的总体设计构架和详细设计方案。本控制器采用Synopsys 公司的SA TA VIP 辅助验证,测试平台为Xilinx ML505开发板,并采用Xilinx 公司的Virtex-5 FPGA 作为最终实现,测试结果表明能够正确有效地实现硬盘数据的加解密工作。在SATA 加解密控制器设计与实现方面的研究成果,具有通用性、可移植性,有一定的理论及经济价值。关键词:SA TA ;加解密控制器;FPGA ;V erilog HDL
中图分类号:TN702 文献标识码:A 文章编号:1681-1070(2009)06-0025-04
Design of SATA Hard Disk Encryption/decryption Controller based on FPGA
LIU Wen-guo, LI Guang-jun, LIN Shui-sheng
(University of Electronic Science and Technology , School of Communication and
Information Engineering , Chengdu 610051,China )
Abstract: With the advent of the information era, the need for data storage and data protection has been becoming more and more urgent, so how to protect the hard disk data become an important task. This paper firstly analyzes several common ways of hard disk data protection, and then presents the design scheme of SA TA hard disk encryption/decryption controller based on FPGA after comparison. Because of the common use of SA TA2.0 interface, this paper then introduces the system structure of SA TA2.0 protocol and presents the general architecture and detailed scheme. The controller adopts SA TA VIP as assistant verification, Xilinx ML505 as test platform and Virtex-5 FPGA of Xilinx as the final implementation. The test shows that it can efficiently encrypt/decrypt the Hard Disk data. The design method of this paper is of theoretic and economical value and can be applied to many purposes.
Key words:SA TA; encryption/decryption controller; FPGA; verilog HDL
电 路 设 计
1 引言
SATA2.0接口是传输速率达到3Gbps 的串行接口,由于采用了吉比特以太网结构和8b/10b 编码技
术,同时还支持NCQ (本地命令队列)、端口复用器、
交错启动、热插拔等功能,在硬盘领域被广泛采用。目前,实现硬盘数据加密的方法有如下几类:
(1)基于密码的硬盘锁
密码硬盘锁是ATA 硬盘的标准功能。用户可使
用一个特殊命令来设置一个用来访问硬盘的密码。
了解BIOS功能的用户可以设置密码,每次系统启动
时,都必须输入正确密码才能访问硬盘。该方法看
似有效,但若有人能确定密码,将能访问硬盘的所
有数据。
(2)软件加密方法
软件加密方法比较常见的有修改硬盘主引导程
序、修改主分区表、编写硬盘驱动程序实现加密功
能。操作比较简单,但对于经验丰富的程序员可进
行相应的修复,实现硬盘数据的解密。
(3)硬件加密方法
硬件加密卡一般由加解密芯片和密钥存储芯片
构成。加密卡使用时连接在主板和ATA硬盘之间,
能自动对写入硬盘的所有用户数据进行加密,并在
读取时解密。加密和解密的速度与接口的传输速度
大致相同,不会导致硬盘性能下降。
其中,硬件加密方法明显优于其他加密方法:
●硬件加密方法不依赖于具体的操作系统,只
和硬盘接口协议有关。
●硬件加密方法使用硬件电路实现加解密算法
和接口协议的控制电路,不占用系统资源。
●硬件加密方法具有安全可靠的密钥存储方式。
本设计采用FPGA并用V erilog HDL语言用硬件
加密的方法实现了SATA硬盘加解密控制器。并对代码用仿真工具MODELSIM进行了仿真与验证测试,能够实现主机硬盘间数据的可靠传输。
2 SA TA 2.0 协议的体系结构
SA TA 2.0 协议分为四层架构:物理层、链路层、传输层和应用层。应用层负责所有ATA命令的执行和控制命令块寄存器的访问。传输层负责把控制信息和数据放入在主机和设备之间传输的包或者帧里面,这种帧被称为帧信息结构(Frame Information Structure,FIS)。链路层负责从帧里面取出数据,使用8b/10b编码或者解码每个字节,并且插入控制字符使得10b的数据流能够被正确解码。物理层负责通过串行数据流的方式发送和接受已经被加密的信息。体系结构如图1所示。
3 SA TA控制器总体架构
根据SATA 2.0协议规定,主机硬盘间所传数据
图1 SATA 2.0体系结构
按类型可以分为:从主机到设备传输的原语、配置帧、非加密帧和需要加密的帧;从设备到主机传输的原语、非解密帧和需要解密的帧。对不同类型数据需要采用不同的处理方式。系统的总体结构如图2所示。
其中,控制器包括虚拟设备与虚拟主机。应用在支持SATA2.0接口的主机和硬盘之间,根据在主机和硬盘间传输帧的类型对其进行相应的处理,实现在传输中对数据加解密的功能。靠主机方是一个虚拟设备,相当于一个设备控制器与主机完成交互,而靠设备方是一个虚拟主机,相当于一个主机控制器与设备完成交互。通过本系统协调主机和设备的传输,并且把主机和设备之间传输的数据经过加解密处理,完成硬件层上的加解密操作。
图2 SATA控制器总体架构
4 系统详细设计方案
SATA数据传输分为两个方向:主机到硬盘和硬盘到主机。其中两个方向发送的数据除了个别帧只有主机发往设备外基本类型相同,因此系统在结构上呈总体对称性。控制器详细实现结构如图3所示。
其中,虚线框内表示的为系统辅助设计环境。包括FPGA里面自带的物理收发器(MGT)和一个外置的加解密芯片。物理接口使用了XILINX Virtex-4 Rocket IO MGT,MGT经配置后可以支持SA TA 2.0协议,串行传输速度可以达到协议标准3Gbps,实现协议规定的物理层功能,起到PHY芯片的作用,支持主板PHY芯片和SATA硬盘PHY 芯片与本系统的
第9卷第6期刘文国,李广军,林水生:基于F P G A 的S ATA 硬盘加解密控制器设计
图3 系统详细结构
互联和通信。外置的加解密芯片可以通过接口与本控制器实现连接,将需要加密的数据送入该芯片然后送往设备端或将需要解密的数据送入芯片解密后送往主机端。该系统包含两个PHY PACKET 模块,分别与主机和硬盘对接。
PHY 接口单元(PIU )负责把MGT 接口转为本
设计核心逻辑使用的接口,把核心逻辑接口和MGT
接口隔离开来,降低设计的耦合度。设计该模块最主要的原因是为了在改变PHY 的时候只需要在该模块里面做一些相关的改变就可以了,不需要改变核心逻辑。该系统中包含两个PHY 接口单元,分别用于与主机和硬盘对接。
接收判断模块(RE )用于分析接收到的数据类型,将原语和数据区分开来,对数据进行解扰和CRC 校验。从一帧里去掉SOF 、EOF 和帧内原语,提取出数据信息交给后面的数据处理模块处理。该系统中包含两个接收判断模块,分别用于接收主机和硬盘发送的数据。
发送控制模块(SCM )是本系统的核心模块,它根据接收到的来自于接收判断模块的信息,分别进行功率管理,接收和发送帧,控制两端的发送接口引擎发送合适的原语或者数据,使主机和硬盘协调工作。所有接收和发送的控制操作都由该模块完成。该模块主要包括7个子模块,其中包括一个主控制器模块(SCM_MC ),左边上电和功率管理控制模块(S C M _L P M C ),右边上电和功率管理控制模块(SCM_RPMC ),左边接收帧控制模块(SCM_LRC ),右边发送帧控制模块(SCM_RSC ),左边发送帧控制模块(S C M _L S C ),右边接收帧控制模块(SCM_RRC )。主控制器模块负责帧外原语的发送和接收,以及为进入帧接收和发送模块做准备,左边上电和功率管理控制模块负责和主机相连的链路的上电过程和进入相应的功率管理状态,右边上电和
功率管理控制模块负责和硬盘相连的链路的上电过程和进入相应的功率管理状态,左边接收帧控制模块和右边发送帧控制模块一起完成从主机到硬盘的数据传输过程,右边接收帧控制模块和左边发送帧控制模块一起完成从硬盘到主机的数据传输过程。
数据处理模块(DPM )用于分析接收到的帧的内容,提取出相应的命令放在命令寄存器中。如果接收到的是数据帧,会通过分析命令寄存器中的内容判断该数据帧是否需要加密或者是解密。对处理之后的数据生成CRC ,然后把其放在发送FIFO 中,在发送接口状态机的控制下把数据发送到发送接口引擎。数据处理模块中数据的通路有三种不同情况,对于不需要加密或者解密的数据帧直接生成CRC ,然后发送到发送FIFO 中等待发送出去;对于需要加密或者解密的数据帧如果加解密芯片配置成功,那么就送到加解密芯片中进行相应的加密或者解密操作;如果加解密芯片没有配置成功,那么对所有的数据取反。
发送接口引擎(SIE )主要有两个作用:一是接收数据处理模块处理之后的数据,把其缓存起来,然后通知发送控制模块数据准备好可以发送;二是在发送控制模块的控制下,发送数据到PHY ,经过
PHY串行化之后发送到SATA线上。该系统中包含两个发送接口引擎,分别发送数据给主机和硬盘。
5 验证与测试
验证与测试主要分为三个阶段:第一个阶段为模块级仿真,由RTL设计人员验证模块功能,保证基本功能正确;第二个阶段为EDA系统的验证,由负责系统验证的人员进行,RTL设计人员辅助系统验证;第三个阶段为FPGA测试,由软件设计人员和RTL设计人员共同完成,系统验证人员提供支持。模块级仿真是采用Mentor公司的modelsim对V erilog 代码进行功能仿真。其中需要加密的帧传输时序图如图4所示。EDA系统验证采用SYNOPSYS的SATA Device VIP作为硬盘模型,并且使用行为级方式实现了主机行为模型。测试环境如图5所示。
图4 需要加密的帧传输时序图
图5 系统验证环境
其中,SA TA CONTROLLER CHIP为被测试的控制器模块。SATA主机行为模型是使用行为级描述方式写出的用于验证的主机行为模型,用于模拟主机的操作。SATA MONITOR模块接口信号为标准synopsys SA TA VIP MONITOR接口信号。MONITOR 模块监视整个SA TA总线的时序。SA TA Device VIP是能够响应SATA事务处理的总线功能模型。这个模型能够被用来验证SATA主机控制器。message是采样SA TA MONITOR和SA TA Device VIP在运行期间发出的MESSAGE事件的小模块。error是监测SATA MONITOR和SATA Device VIP在运行期间发出的ERROR事件。
FPGA测试使用Xilinx ML505开发板为测试平台,主芯片为Virtex-5 FPGA,最大可使用四对MGT,在实际测试的时候使用了两个,一个连在电脑的SATA接口上,一个与硬盘相连。需要分别对其进行环路测试、单向连接测试及传输测试。其中环路测试结果如图6所示。
图6 环路测试结果
6 结论
本文在分析各种硬盘加密技术的基础上,给出了基于FPGA的SA TA 2.0硬盘加解密控制器硬件设计方案,并在Xilinx ML505开发板和Virtex-5 FPGA上得到了验证,能够正确地实现数据的加解密功能。该设计方法适用于对各种SATA 2.0接口硬盘的加解密保护。
参考文献:
[1]叶顶胜.基于FPGA的Serial ATA 1.0a设备IP CORE设计[D].成都:西南石油大学,2006.
[2]APT Technologies Inc, Dell Computer Corporation, Intel Corporation, et al. Serial ATA: High Speed AT Attachment
Revision 1.0a[OL]. http://www.sata-io.org,2003,7.
[3]Dell Computer Corporation, Hewlett Packard Corporation, Intel Corporation, et al. Serial ATA: High Speed AT At-
tachment Revision 2.5[OL]. http://www.sata-io.org, 2005,10.[4]李星.基于ATA总线的硬盘加密卡的设计与实现[D].南京:东南大学,2006.
[5]张开来.基于DES算法的硬盘加密设计与实现[D].西安:西北工业大学,2003.
[6]张彦敏.基于IDE硬盘的数据采集存储系统研究[D].哈尔滨:哈尔滨工程大学,2005.
作者简介:
刘文国(1982-),男,山东泰安人,
在读硕士研究生,研究方向为通信与
信息ASIC
设计方向。
