使用FPGA集群加速加密

描述

作者:DAVID HULTON,DAVID PELLERIN

六十多年来,密码学(包括代码创建、分析和破解)一直是计算技术最重要的驱动力之一。事实上,现代计算机的发展在很大程度上归功于第二次世界大战期间和之后的计算机先驱艾伦·图灵和克劳德·香农等密码学研究。

在无处不在的有线和无线通信的现代时代,密码学研究再次导致计算的巨大进步。随着越来越多的个人、商业、军事和国家安全数据在网上传输和管理,恶作剧的机会越来越多,因此更强大的加密方法至关重要。对改进加密的研究需要分析和审计当今广泛使用的系统以及未来的系统。

以下讨论的重点是如何使用广泛使用的现场可编程门阵列(FPGA)集群来加速加密算法,特别是代码破解。我们首先解释了加密计算背后的挑战,然后介绍了一个案例研究,说明FPGA加速方法如何加速广泛使用的数据安全方法(包括DES、WPA、WEP和GSM)的解密,并将基于FPGA的方法与更传统的面向软件的方法进行比较。最后,我们证明了包含在单个 4U 机箱中且功耗低于 1,400 W 的商用 FPGA 集群提供的计算相当于 1,000 多个双核处理器。

白帽子与黑帽子

代码破解是一项有争议的活动,对于那些追求它来访问其他禁区信息的人来说,会带来重大的法律风险。同样,对于那些成为此类入侵目标的人来说,存在财务损失或敏感数据泄露的重大风险。所有数字数据用户都有理由担心他们所依赖的系统是否容易受到未经授权的访问。出于这个原因,许多组织和政府利用密码学专家进行安全审计。这些专业黑客在其所有者的许可下,合法地试图闯入系统,测试商业和公共数据网络安全。

在审计一个可能安全的系统时,“白帽”黑客将部署与“黑帽”黑客大致相同的软件算法和硬件。此活动称为渗透测试,旨在查找和报告数据安全策略中的漏洞。是否使用了不充分或过时的加密方法?系统用户通常选择弱密码吗?是否存在操作系统或应用程序层漏洞?

这种破解的另一个合法原因是恢复丢失和忘记的密码。由于密码错误而导致数据锁定和不可用,每年会导致大量的生产力损失。机密文件和整个数据库可能变得毫无用处,甚至对其合法所有者也是如此。因此,政府、行业和学术界每天都使用基于黑帽破解方法的密码恢复软件工具,以重新获得对关键数据的访问权限。

加密计算的挑战

构成这些安全破解和密码恢复工具基础的算法需要大量的计算能力,并且可能需要很长的运行时间才能完成。事实上,虽然在一台计算机上运行的广泛可用的软件工具可以在几分钟内破解基于字典的密码,但恢复相对强大的密码可能需要多年的迭代计算。

近年来,计算机集群通过添加GPU和FPGA加速器而得到增强。这些设备凭借其并行结构,可以为许多计算机密集型算法(包括密码恢复)提供实质性的加速。

由于 GPU 起源于标准现成计算机系统的图形处理,因此大多数程序员都广为人知。然而,尽管它们可以为代码破解算法提供显著的性能提升[1],但 GPU 并未针对此应用进行很好的优化。特别是,数字加密标准 (DES) 和 SAFER(用于蓝牙)等按位加密算法不适合在 CPU 或 GPU 上实现高效实现。相对于正在执行的计算,GPU 还需要大量功率。GPU 提供高水平的加速,但功耗成本很高。相反,FPGA提供了一个可行的替代方案。

案例研究:用于高性能密码破解的 FPGA

为了 演示 FPGA 如何 满足 更快 密码 恢复 的 需求, 我们 选择 了 一组 具有 代表性 的 密码 破解 问题, 并在 FPGA 集群 上 部署 了 高度 并行 的 恢复 算法。

本演示中使用的系统包括包含 77 个 Xilinx Virtex-5 FPGA 器件的 Pico SC3 集群、包含多达 176 个 Spartan-3 FPGA 的 SC4 集群,以及包含 72 个更大容量 Spartan-6 FPGA 的 SC5 集群。在所有情况下,这些集群都安装在一个低于 1,400 W 的 4U 机箱图纸中。 使用 FPGA 硬件设计方法和工具,我们成功部署了以下加密方法的恢复算法:

文件保险箱

FileVault 基于高级加密标准 (AES),为 Apple Macintosh 操作系统提供加密文件系统。恢复文件保险箱密码需要使用 SHA-1 哈希函数对可能的密码进行数千次哈希处理。此派生方法称为基于密码的密钥派生函数 (PBKDF2),用于尝试解密 FileVault 映像。使用 72-FPGA SC5 集群,与在 2.93 GHz 的英特尔酷睿 i7 处理器上运行的原始软件实施相比,我们能够将 FileVault 密钥恢复应用程序的速度提高 498 倍。结果是运行时间从 21 小时减少到仅 2.5 分钟(参见图 2)。

图2:使用 FPGA 集群,FileVault 破解速度在 CPU 上加速了 498 倍

FPGA

Wi-Fi 保护访问 (WPA)

WPA 用于保护无线网络,并通过临时密钥完整性协议实现。WPA 和 WPA2 旨在取代上一代有线等效保密 (WEP) 协议。WPA 恢复的特点是对网络的候选密码执行 PBKDF2 SHA-1 算法,然后比较身份验证哈希以确定密码是否正确。在基于 FPGA 的集群上运行时,与英特尔酷睿 i7 处理器软件运行时相比,该算法的加速度提高了 498 倍。

韦普

WEP(或有线等效保密,如前所述)于1997年首次推出,至今仍常用于家庭和企业,以保护无线接入点免受入侵。WEP 的安全性明显低于 WPA;因此,对于需要高级别安全性的组织,包括政府和军队,WEP现在正在被WPA和其他更安全的系统所取代。破坏 WEP 涉及尝试由伪随机位流形成的每个可能的密钥,这些位流已组合(使用独占 OR 操作)与每个 WEP 数据包中存在的已知明文和校验和。统计方法可以通过减小密钥空间的大小和要测试的相应密钥数量来加速这种攻击。在破解 WEP 时,我们将暴力破解整个 40 位密钥空间所需的时间从英特尔酷睿 i7 处理器上估计的 42 天缩短到 FPGA 集群上的 4.7 分钟。这种性能来自于在 FPGA 集群中每秒生成 38 亿个密钥,如图 3 所示,性能提高了 12,933 倍。

图3:使用 FPGA 集群,WEP 破解速度在 CPU 上加速 12,933 倍

FPGA

数字墙的脆弱性

基于FPGA的方法可用于破解许多曾经看起来很强大的数据加密方案。使用配备 176 个 FPGA 器件的单个 FPGA 集群,我们最近使用单个 FPGA 加速的 4U 服务器实现了已知的最高 56 位 DES 解密基准速度,吞吐量超过每秒 2800 亿个密钥。

本演示中的并行 DES 破解算法使用蛮力方法来分析整个 DES 56 位密钥空间,迭代解密固定大小的数据块,以查找将部分数据解密为 ASCII 数字序列的密钥。此技术通常用于恢复包含已知类型数据的加密文件的密钥,例如包含财务或军事信息的加密文档。在当前一代CPU内核上运行的DES破解软件每秒可以处理大约1600万个DES密钥操作。像 NVIDIA Tesla 这样的现代 GPU 卡可以处理超过 10 倍的数字,即每秒大约 2.5 亿次 DES 操作。

然而,当使用基于单个现成主板的 FPGA 集群时,每个 FPGA 每秒能够执行 16 亿次 DES 操作。这意味着,在 PC 上执行的密钥恢复需要数年时间,即使使用 GPU 加速,也可以在不到三天的时间内在 4U FPGA 集群上完成。随着越来越多的FPGA部署在越来越大的集群中,解密数据所需的时间以近乎线性的方式减少。

尽管DES现在被认为是过时的,因为它表现出易受攻击的脆弱性,但目前常用的其他加密方法也存在风险。以全球移动通信系统(GSM)为例,该标准承载着全球绝大多数蜂窝电话呼叫。在 2009 年 12 月于柏林举行的混沌通信大会上,密码学研究员 Karsten Nohl 宣布,他的团队(一群黑客协同工作以创建一个分布式计算集群)通过创建一个巨大的 2 TB 哈希值“彩虹表”来破解 GSM 加密[3]。简单来说,彩虹表提供了一个具有反向查找方案的破解程序,可以快速解密无线语音数据。

Nohl在演讲中表示,想要窃听GSM呼叫的个人或团体目前需要在硬件上花费约10万美元才能在一秒钟或更短的时间内破解A5 / 1加密呼叫。这项研究说明了安全审计对于揭露和纠正广泛使用的数据安全标准中的漏洞的重要性。FPGA加速器可以在这种审计中发挥重要作用。

借助 FPGA,更快地破解代码

“黑帽”和“白帽”黑客都发现了FPGA计算在密码学方面的强大功能。与计算的最初几年一样,其他应用领域(包括基因组学、物理学和金融等不同领域的研究人员)也意识到了基于 FPGA 的并行平台的优势。

代码破解和密钥恢复算法中计算量最大的部分是相对简单的操作,必须迭代执行,并且可以并行化以实现高性能。当部署在FPGA上时,由于所执行任务的简单性,这些算法可以非常高效地使用可用的FPGA资源。并非所有软件算法都能很好地融入FPGA集群,但许多复杂的计算问题都可以以相同的方式解决。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分