基 于 MEMS 强 链 和 FPGA 的 USB 移 动 硬 盘 数 据 加 解 密 系 统 张 晶, 陈 文 元, 张 卫 平 ( 上 海 交 通 大 学 微 纳 科 学 技 术 研 究 院 薄 膜 与 微 细 技 术 教 育 部 重 点 实 验 室 微 米 / 纳 米 加 工 技 术 国 家 级 重 点 实 验 室, 上 海 200030) 摘 要 : 随 着 信 息 量 的 急 剧 增 长, 信 息 安 全 日 益 受 到 人 们 重 视 一 个 完 整 的 数 据 加 解 密 系 统 应 该 具 备 安 全 可 靠 的 密 码 认 证 机 制 和 加 解 密 算 法 本 文 基 于 MEMS 强 链 USB 控 制 器 和 FPGA 设 计 了 一 种 USB 接 口 的 高 效 数 据 加 解 密 系 统, 采 用 AES 加 密 算 法 普 通 IDE 硬 盘 挂 接 该 系 统 后 成 为 安 全 性 极 高 的 加 密 USB 移 动 硬 盘, 其 平 均 数 据 吞 吐 率 接 近 普 通 U 盘, 达 到 10MB/s 关 键 词 :MEMS AES USB FPGA IDE 中 图 分 类 号 :TP309 文 献 标 识 码 :A Data Encryption System for USB Mobile HardDisk Based on MEMS Stronglink and FPGA ZHANG Jing, CHEN Wen-yuan (Thin Films & Micro fabrication Lab, Key Lab of the Ministry of Education, National Key Lab of Nano/Micro Fabrication Tech, Res Inst of Micro/Nano Sci and Tech, Shanghai Jiaotong University, Shanghai, 200030, China) Abstract: With the explosion of information, information security increasingly becomes evident. A complete data encryption system must consists of a reliable authentication mechanism and an advanced encryption algorithm. In this paper, we will introduce a new fast encryption system based on MEMS stronglink, USB controller and FPGA and its crypto algorithm is AES. A common IDE harddisk attached on this system becomes a very safe USB mobile encrypted harddisk, and the data throughput rate of it achieves 10MB/s, closed to any common USB flash disk in the market. Key Words: MEMS AES USB FPGA IDE 1. 系 统 结 构 布 局 该 系 统 由 Cypress CY7C68013 USB2.0 控 制 器 Altera EP2C35 FPGA 和 MEMS 强 链 构 成, 图 1 描 述 了 整 个 系 统 的 硬 件 布 局 图 1 系 统 结 构 框 架 图 Fig1 General layout diagram of system MEMS 强 链 负 责 对 用 户 输 入 的 密 码 进 行 验 证 CY7C68013 USB 控 制 器 内 含 增 强 型 51 核, 它 不 但 能 高 效 处 理 USB 协 议 事 务, 而 且 是 整 个 系 统 的 控 制 中 心 EP2C35 FPGA 一 端 连 接 USB 控 制 芯 片 的 GPIF 接 口, 一 端 连 接 IDE 硬 盘, 它 负 责 从 IDE 总 线 中 区 分 出 控 制 信 号 读 写 硬 盘 寄 存
器 的 数 据 信 号 和 读 写 硬 盘 扇 区 的 数 据 信 号, 然 后 仅 对 写 入 硬 盘 扇 区 的 数 据 作 加 密 处 理, 对 读 出 硬 盘 扇 区 的 数 据 作 解 密 处 理 2. MEMS 强 链 MEMS 强 链 的 棘 爪 能 卡 住 棘 轮, 从 而 能 精 确 定 位 到 固 定 的 位 置, 棘 爪 装 有 电 磁 驱 动 型 电 机, 使 其 具 有 误 码 鉴 别 与 自 复 位 功 能, 因 而 可 用 于 信 息 安 全, 实 现 密 码 锁 的 功 能 鉴 码 机 构 由 两 组 电 磁 型 微 步 进 电 机 驱 动 反 干 涉 齿 轮 集 A 和 B, 反 干 涉 码 轮 集 中 机 械 固 化 了 密 码 反 干 涉 齿 轮 集 在 正 确 解 码 时, 码 齿 之 间 互 相 没 有 接 触 ; 当 出 现 错 码 时, 码 齿 相 互 干 涉, 反 干 涉 齿 轮 集 卡 死 使 用 光 电 耦 合 机 构, 在 正 确 接 收 到 24 位 密 码 时 光 电 能 量 耦 合, 系 统 开 启 图 2 是 MSMS 强 链 结 构 图 图 2 MEMS 强 链 组 织 结 构 图 Fig2 structure diagram of MEMS Stronglink 3. 物 理 密 钥 与 密 码 认 证 物 理 密 钥 是 相 对 于 逻 辑 密 钥 而 言 的, 逻 辑 密 钥 通 常 以 二 进 制 形 式 存 在 于 芯 片 内 部 ROM 区, 容 易 被 破 解 而 物 理 密 钥 固 化 在 机 械 结 构 内 部 本 设 计 采 用 的 反 向 啮 合 齿 轮 集 鉴 码 机 构 所 蕴 含 的 密 钥 就 属 于 物 理 密 钥 它 的 结 构 相 当 隐 含, 不 是 专 业 人 士 即 使 知 道 了 鉴 码 机 构, 也 很 难 推 出 其 密 码 密 码 认 证 开 始 时,USB 控 制 器 把 接 收 到 的 来 自 PC 的 24 位 待 验 证 二 进 制 密 码 以 脉 冲 的 形 式 传 递 给 强 链 强 链 的 电 机 会 根 据 脉 冲 驱 动 码 轮 若 密 码 正 确, 反 干 涉 齿 轮 集 会 无 摩 擦 的 走 通 一 周 回 到 原 位 ; 只 要 有 一 位 密 码 错 误, 反 干 涉 齿 轮 集 会 在 该 位 卡 死 USB 控 制 器 根 据 强 链 的 反 馈 信 号 作 出 判 断, 如 果 验 证 通 过, 则 将 该 系 统 枚 举 成 一 个 可 移 动 磁 盘, 并 把 该 正 确 密 码 传 递 给 FPGA, 作 为 AES 加 密 算 法 的 密 钥 ; 否 则 向 PC 机 返 回 验 证 失 败 的 信 息 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 所 示 FPGA 顶 层 模 块 全 局 控 制 状 态 机 PIO 写 入 命 令 译 码 逻 辑 状 态 切 换 控 制 逻 辑 总 线 切 换 控 制 逻 辑 USB 控 制 器 GPIF 接 口 DMA 读 数 据 发 送 端 16 位 宽 FIFO 128 位 转 16 位 解 密 流 水 线 AES 解 密 模 块 16 位 转 128 位 DMA 读 数 据 接 收 端 IDE 硬 盘 接 口 DMA 写 数 据 接 收 端 16 位 转 128 位 AES 加 密 模 块 128 位 转 16 位 16 位 宽 FIFO DMA 写 数 据 发 送 端 加 密 流 水 线 图 3 FPGA 顶 层 模 块 布 局 Fig3 Top module of FPGA design 数 据 接 收 模 块 的 任 务 是 把 硬 盘 发 送 过 来 的 读 扇 区 数 据 或 者 USB 控 制 器 发 送 来 的 写 扇 区 数 据 正 确 的 接 收 和 缓 存 ; 数 据 处 理 模 块 的 任 务 是 对 扇 区 数 据 进 行 加 密 或 解 密 处 理 ; 数 据 发 送 模 块 的 任 务 是 把 处 理 完 的 结 果 数 据 发 送 出 去 由 于 数 据 流 是 双 向 的, 所 以 两 个 方 向 上 各 有 一 条 数 据 收 发 流 水 线 在 一 次 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 传 输 命 令 后, 总 线 控 制 权 会 重 新 交 还 给 全 局 控 制 状 态 机 5. AES 加 密 模 块 的 实 现 AES 的 设 计 原 理 可 参 考 文 献 [1], 下 面 只 简 单 介 绍 算 法 过 程 AES 是 一 个 迭 代 的 分 组 密 码, 每 一 轮 迭 代 称 为 一 个 轮 变 换, 包 括 一 个 混 合 和 三 个 代 换 : (1) 字 节 代 换 (SubBytes): 利 用 S 盒 对 状 态 的 每 一 个 字 节 进 行 非 线 性 变 换 (2) 行 移 位 (ShiftRow): 对 状 态 的 每 一 行, 按 不 同 的 位 移 量 进 行 行 移 位 (3) 列 混 合 (MixColumn): 对 状 态 中 的 每 一 列 并 行 应 用 列 混 合, 在 最 后 一 轮 省 略 该 步 (4) 扩 展 密 钥 加 (AddRoundKey): 与 扩 展 密 钥 异 或 加 密 算 法 的 流 程 如 图 4 所 示 图 4 AES 加 密 流 程 Fig4 AES encryption 相 应 的, 解 密 算 法 使 用 逆 序 的 扩 展 密 钥, 轮 变 换 分 别 为 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 强 链 应 用 到 计 算 机 信 息 安 全 领 域, 成 为 一 种 可 以 电 机 驱 动 的 机 械 密 码 锁, 实 现 了 系 统 的 物 理 认 证 ; 开 发 Cypress CY7C68013 USB 控 制 器 固 件, 实 现 USB-IDE 桥, 并 使 用 它 的 通 用 IO 控 制 强 链 电 机 ; 硬 盘 扇 区 读 写 全 部 采 用 Ultra DMA 方 式, 大 大 提 高 数 据 吞 吐 率, 基 于 FPGA 的 ATA 协 议 控 制 器 能 够 正 确 识 别 Ultra DMA 传 输 的 启 动, 并 同 时 与 主 从 设 备 建 立 握 手 连 接 ; 采 用 双 CRC 校 验 机 制, 同 时 对 主 从 设 备 进 行 CRC 确 认, 保 证 数 据 在 加 解 密 处 理 前 被 正 确 的 接 受, 在 加 解 密 处 理 后 被 正 确 的 发 送 参 考 文 献 : [1] Daemen J, Rijnmen V.AES Proposal:Rijndael[M].1999-09. [2] 武 玉 华, 李 艳 俊, 周 玉 坤, 欧 海 文. 基 于 FPGA 的 AES-128 密 码 算 法 实 现 研 究 [J]. 微 计 算 机 信 息,2007,2-3 [3] 陈 灯 川, 马 维, 张 有 成. 基 于 FPGA 的 IDE 硬 盘 数 据 AES 加 解 密 研 究 与 实 现 [J]. 电 子 技 术 应 用, 2006,12 [4] 崔 国 华, 唐 国 富, 洪 帆.AES 算 法 的 实 现 研 究 [J]. 计 算 机 应 用 研 究,2004,21(8): 99-101 作 者 简 介 : 张 晶 (1983-), 男, 上 海 人, 硕 士 研 究 生, 研 究 方 向 为 FPGA 数 字 设 计 陈 文 元 (1944-), 男, 教 授, 博 士 生 导 师, 研 究 方 向 为 微 机 电 系 统 (MEMS) 及 其 集 成 技 术 Biography: ZHANG Jing (1983-),Male,Shanghai,graduate of Res Inst of Micro/Nano Sci and Tech, Shanghai Jiaotong University,Major: Microelectronics and Solid State Electronics, Research area: digital design with FPGA.