基于MEMS和FPGA的移动硬盘数据加解密系统

发布者:MysticalGarden最新更新时间:2009-11-04 来源: 维库电子关键字:MEMS强链  FPGA  USB  移动硬盘  加解密系统 手机看文章 扫描二维码
随时随地手机看文章

  随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该 具备安全可靠的密码认证机制和加解密算法。本文基于MEMS 强链、USB 控制器和FPGA 设 计了一种USB 接口的高效数据加解密系统,采用AES 加密算法。普通IDE 硬盘挂接该系统后 成为安全性极高的加密USB 移动硬盘,其平均数据吞吐率接近普通U 盘,达到10MB/s.

  1. 系统结构布局

  该系统由Cypress CY7C68013 USB2.0 控制器、Altera EP2C35 FPGA 和MEMS 强链构成, 图1 描述了整个系统的硬件布局。

整个系统的硬件布局

  MEMS 强链负责对用户输入的密码进行验证。CY7C68013 USB 控制器内含增强型51 核,它不 但能高效处理USB 协议事务,而且是整个系统的控制中心。EP2C35 FPGA 一端连接USB 控制 芯片的GPIF 接口,一端连接IDE 硬盘,它负责从IDE 总线中区分出控制信号、读写硬盘寄存器的数据信号和读写硬盘扇区的数据信号,然后仅对写入硬盘扇区的数据作加密处理,对读出 硬盘扇区的数据作解密处理。

  2. MEMS 强链

  MEMS 强链的棘爪能卡住棘轮,从而能精确定位到固定的位置,棘爪装有电磁驱动型电机, 使其具有误码鉴别与自复位功能,因而可用于信息安全,实现密码锁的功能。鉴码机构由两组 电磁型微步进电机驱动反干涉齿轮集A 和B,反干涉码轮集中机械固化了密码。反干涉齿轮集 在正确解码时,码齿之间互相没有接触;当出现错码时,码齿相互干涉,反干涉齿轮集卡死。 使用光电耦合机构,在正确接收到24 位密码时光电能量耦合,系统开启。图2 是MSMS 强链 结构图。

MSMS 强链 结构图

  3. 物理密钥与密码认证

  物理密钥是相对于逻辑密钥而言的,逻辑密钥通常以二进制形式存在于芯片内部ROM 区,容易被破解。而物理密钥固化在机械结构内部。本设计采用的反向啮合齿轮集鉴码机构所蕴含 的密钥就属于物理密钥。它的结构相当隐含,不是专业人士即使知道了鉴码机构,也很难推出其密码。

  密码认证开始时,USB 控制器把接收到的来自PC 的24 位待验证二进制密码以脉冲的形 式传递给强链。强链的电机会根据脉冲驱动码轮。若密码正确,反干涉齿轮*无摩擦的走通 一周回到原位;只要有一位密码错误,反干涉齿轮*在该位卡死。USB 控制器根据强链的反 馈信号作出判断,如果验证通过,则将该系统枚举成一个可移动磁盘,并把该正确密码传递给 FPGA,作为AES 加密算法的密钥;否则向PC 机返回验证失败的信息。 [page]

  4. ATA 协议控制器的实现

  从密码认证通过,枚举开始的那一刻起,USB 控制器得到了对硬盘的访问权。 根据 ATA 协议,对支持Ultra DMA 传输方式的IDE 硬盘而言,操作归结为两种,对硬盘接 口寄存器读写以及对硬盘扇区进行Ultra DMA 批量扇区。为了对硬盘数据进行加解密,我们把 FPGA 插入连接GPIF 接口和硬盘接口的IDE 总线,这样所有控制信号和数据信号都要通过 FPGA,受到FPGA 的监视和控制。

  FPGA 必须实现有限状态机,能够对信号进行协议解析,区 分出那些需要加解密的扇区数据,也就是在Ultra DMA 传输过程中出现在数据总线上的数据。 在PIO 状态时,FPGA 让所有信号保持直通,因而读写硬盘接口寄存器的操作不受任何影响,但状态机监测对硬盘接口寄存器的写入操作。一旦发现写入命令寄存器的命令代码为DMA 读 (0xC8 或0x25)或DMA 写(0xCA 或0x35)命令,则有限状态机进入DMA 状态。

  因为考虑到数据经加解密模块会有200ns 左右的延时,如果控制信号仍然直通一定不能满 足DMA 传输协议的时序要求,所以理想的办法是把控制信号也延时相应的时间。

  延时多少的确定很困难,况且也没有必要,我们采取的方法是设计了三个主要模块:数据 接收模块、数据处理模块和数据发送模块,连成一条处理流水线,这样既能对数据流进行完全 时序化的控制,又能维持较高的数据吞吐。如图3 所示。数据接收模块的任务是把硬盘发送过来的读扇区数据或者USB 控制器发送来的写扇区数 据正确的接收和缓存;数据处理模块的任务是对扇区数据进行加密或解密处理;数据发送模块 的任务是把处理完的结果数据发送出去。

FPGA顶层模块布局

  由于数据流是双向的,所以两个方向上各有一条数据收发流水线。在一次DMA 传输中,只有一条流水线是工作的,且它们暂时获得IDE 总线的控制权。

  不失一般性,我们讨论下执行DMA 读命令的全过程。首先,在PIO 状态下将DMA 读命 令的代码0xC8(或0x25)写入硬盘的命令寄存器。此后状态机进入DMA 读状态,总线切换给 DMA 读数据接收模块和DMA 读数据发送模块。DMA 读数据接收模块与硬盘进行握手确认, 启动UDMA 读传输,此后每当硬盘DMA strobe 信号(DMA 同步信号)发生跳变,就对16 位 硬盘数据总线进行采样,并更新CRC 接收校验;每采样8 次则整合成一个128 位并行数据,提 供给AES 解密模块,该模块取走这128 位数据开始新一轮AES 解密迭代运算,同时输出前一 轮处理完的128 位解密数据,并拆分为8 个16 位并行数据,陆续存入一个16 位宽的FIFO。与 此同时,DMA 读数据发送模块查询到FIFO 中出现了数据,就开始不断的从中读取,并放在16 位数据总线上提供给USB 控制器,每放一次数据,便翻转一次DMA strobe 电平使得USB 控制 器的GPIF 接口能够同步接收数据,同时更新CRC 发送校验。

  当硬盘把所有指定数量的加密数据都发送给FPGA 后会收到FPGA 的CRC 接收校验反馈, 若与硬盘内部的CRC 校验一致,则硬盘认为这次DMA 读命令被正确执行。

  当 FPGA 把所有处理完的解密数据都发送给USB 控制器后也会收到USB 控制器的CRC 校 验反馈,若与FPGA 内部的CRC 发送校验一致,则可以认为一次完整的含解密的DMA 读命令 被正确执行。

  图 3 中的全局控制状态机负责整个系统的控制和协调,它实时的监测PIO 写入命令,并在恰当的时机把IDE 总线控制权切换给加密流水线或解密流水线。当加解密流水线执行完一次 DMA 传输命令后,总线控制权会重新交还给全局控制状态机。 [page]

  5. AES 加密模块的实现

  AES 的设计原理可参考文献[1],下面只简单介绍算法过程。AES 是一个迭代的分组密码, 每一轮迭代称为一个轮变换,包括一个混合和三个代换:

  (1)字节代换(SubBytes):利用S 盒对状态的每一个字节进行非线性变换。

  (2)行移位(ShiftRow):对状态的每一行,按不同的位移量进行行移位。

  (3)列混合(MixColumn):对状态中的每一列并行应用列混合,在最后一轮省略该步。

  (4)扩展密钥加(AddRoundKey):与扩展密钥异或。 加密算法的流程如图4 所示。

加密算法的流程

  相应的,解密算法使用逆序的扩展密钥,轮变换分别为InvSubByte,InvShiftRow, InvMixColumn,数据流程稍有不同。

  我们设计的AES 加密运算模块以128 位为一个分组,完成一个分组的运算需要11 个时钟 周期。第1 个时钟周期,密钥扩展模块输出第1 个扩展密码,也就是初始密码本身;同时初始 变换模块用这个扩展密码对128 位明文作AddRoundKey 操作。

  第2 个到第11 个时钟周期,密 钥扩展模块依次生成10 个扩展密码,同时,轮变换模块利用这些扩展密码对输入密文作10 个 轮次的轮变换,其中最后一轮缺少列混合操作,然后输出最终的密文,结束一个分组的运算。

  6. 数据吞吐率分析

  Ultra DMA 在模式2 下的数据传输率为33.33MB/s。由于FPGA 全局时钟频率为100MHz, 所以加解密一个128 位分组需要110ns。加上数据的输入和输出阶段各占用一个时钟周期,总共 需要130ns。所以加解密模块的数据处理速率约为61.54MB/s,完全能够达到实时处理的要求。

  7. 结束语

  本文提出了一种安全高效的USB 移动硬盘数据加解密系统。其中,MEMS 强链的应用开辟 了系统物理认证的新方向;Ultra DMA 协议接口的FPGA 实现大大提高了硬盘读写的吞吐率,同时AES 加解模块的处理速率又能完全满足Ultra DMA 传输带宽,两者的有机协作使得一种高 效的硬件加解密流水线得以实现。

关键字:MEMS强链  FPGA  USB  移动硬盘  加解密系统 引用地址:基于MEMS和FPGA的移动硬盘数据加解密系统

上一篇:基于闪烁存储器的DSP并行引导装载方法
下一篇:DSP与PCI网卡接口设计

推荐阅读最新更新时间:2024-05-02 20:54

基于FPGA的电子设计竞赛电路板的设计
引言   全国大学生电子设计竞赛至今已成功举办了八届, 参赛人数越来越多, 竞赛规模越来越大。大学生电子竞赛在培养学生创新能力、促进高校学风建设及电子信息学科教学改革等方面起到了引导和推进作用。   大学生电子竞赛题目以模拟电子、数字电子、可编程逻辑器件及单片机技术为核心, 涉及电子仪器仪表、通信、高频无线电、自动控制等多学科内容。2007 年电子设计竞赛组委会专家指出: 电子设计竞赛的发展趋势将以模电、数电、FP2GA 为重点。因此, 对于参赛队员来说要获得较好的成绩, 选择合适的题目并进行培训至关重要。笔者针对以FPGA 为核心的竞赛题目特点及竞赛元器件要求, 设计制作了竞赛电路板, 组成框图如图1 所示。 图
[嵌入式]
基于<font color='red'>FPGA</font>的电子设计竞赛电路板的设计
USB-CAN-RS232总线转换电路设计及实现
1 引言 随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有RS-232,RS422/485、HART、Profield、Dupline、CAN和LonWorks等,本文阐述了一种USB-CAN-RS232三总线转换装置,电路设计简单新颖,并并且携带方便,实用性很强。 2 各种总线的特点 2.1 CAN(Controller Area Netwrok) CAN是控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据
[单片机]
Dialog成为赛灵思SoC和FPGA领先电源管理合作伙伴
Dialog半导体公司 (德国证券交易所交易代码: DLG )日前宣布,成为领先FPGA、SoC和3D IC供应商赛灵思的关键电源管理合作伙伴。通过与赛灵思合作,Dialog将充分发挥其在开发针对下一代传感器处理、网络连接和汽车应用的高效、可扩展电源管理解决方案的丰富经验。Dialog为赛灵思 Zynq®-7000 SoC、 Zynq UltraScale+ ™ MPSoC 和 Spartan®-7 FPGA 平台提供完整的电源管理解决方案组合。 这次合作将带来结合了两家公司器件的高效、成本优化的解决方案。 DA9063 电源管理IC(PMIC)和 DA9213 子-PMIC可满足Zynq UltraScale+ MPS
[嵌入式]
Dialog成为赛灵思SoC和<font color='red'>FPGA</font>领先电源管理合作伙伴
提高FPGA嵌入式处理器的系统除错率
目前,越来越多的 FPGA 设计开始采用 嵌入式处理器 ,如 PowerPC 和赛灵思 (Xilinx) 的 MicroBlaze 处理器来完成控制任务,采用C语言等软件语言描述这些控制任务,要比使用 VHDL 或 Verilog 等硬件语言描述更加容易。 当进行嵌入式系统设计时,绝大部份的设计时间可能花费在除错阶段,因此缩短发现问题并解决问题的时间非常重要。作为一款整合除错器, Computex 公司的 F-Sight 同时具备硬件和软件除错能力。一方面,它支持 FPGA 内部嵌入式处理器的全方位软件除错。另一方面,它还支持监视 FPGA 硬件讯号。本文将介绍如何利用 F-Sight 提高除错效率。
[嵌入式]
提高<font color='red'>FPGA</font>嵌入式处理器的<font color='red'>系统</font>除错率
基于PIC单片机USB接口的数据采集系统设计
  我们把所设计的数据采集系统功能分解为三大部分:数据采集部分、数据通信部分、数据处理部分。   数据采集部分应包含:A/D转换器,时序、模式控制,数据缓冲功能。它应能接受来自主机的命令,按不同模式控制A/D转换器采集数据,暂存于数据缓冲区,再根据主机命令发给主机。这部分功能由一个单片机及接口来实现是最优方式。   数据通信部分应包含:简单、高效、通用的数据通信模式和软硬件支持。它应能在数据采集和数据处理两部分之间实现目前最好的连接和沟通。因为USB作为一种外部总线标准,用于规范电脑与外部设备的连接和通讯,并具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点,所以这部分功能采用USB接口连接最好。   数据处理部分应
[单片机]
基于PIC单片机<font color='red'>USB</font>接口的数据采集<font color='red'>系统</font>设计
STM32 USB IAP 步骤
1.下载STM32_USB-FS-Device_Lib_V3.2.1.rar 2.安装DfuSe_Demo_V3.0_Setup.exe。 3.打开...\STM32_USB-FS-Device_Lib_V3.2.1\Project\Device_Firmware_Upgrade\MDK-ARM\DFU.uvproj 修改://#define ApplicationAddress 0x08003000为#define ApplicationAddress 0x08004000(因为要修改程序增加空间) 编译程序,用stlink/Jlink将程序下载到STM32中。 4.用usb线连接STM32板,PC端出现发现新硬件。 5.安装
[单片机]
基于VC的USB2.0数据采集系统设计
引言  USB(通用串行总线)集中了PCI和RS-232串行总线的优点,具有方便的即插即用和热插拔特性以及较高的传输速率,因此,将USB技术应用于数据采集是非常合适的,可以达到数据采集系统的高速度处理。目前,USB已经推出了其协议的2.0版本,速率高达480 Mbit/s。   本文研发了一套基于 USB接口 的数据采集系统,整个系统的设计涉及到硬件、设备固件(Firmware)、USB设备驱动程序及客户应用软件。下面分别加以说明。   1 USB接口芯片   本文介绍的USB数据采集系统采用了Cypress公司EZ-USB FX2系列的CY7C68013-128AC芯片,它同时集成了8051微控制器和USB2.0收发
[工业控制]
基于VC的<font color='red'>USB</font>2.0数据采集<font color='red'>系统</font>设计
基于USB总线的心电检测系统设计
  摘要:针对人们对心脏疾病问题的日益关注,介绍了一种新型心电检测系统,它具有体积小,实用性强,价格低廉等特点,特别适合家庭使用。同时为了解决与PC间的接口问题,依据USB1.1规范,采用PHILIPS公司的PDIUSBD12接口芯片,大大提高了数据传输的速度。经实验检测,系统运行稳定可靠。   随着社会的进步和科技的发展,人们对健康观念、健康方式和途径都发生着深刻的变化。我国是心脑血管疾病的高发区,然而多数医院的心电监护设备数量少、不宜移动、且成本高,无法满足市场的需求。为了满足对心电监护设备的需求,降低 医疗 成本,需要一种与PC相结合的心电检测系统。计算机与外设连接的总线接口由多种形式,其中PCI和ISA总线插拔麻烦,且扩展槽
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved