针对IIoT边缘计算的嵌入式GPU高效椭圆曲线密码学加速器:EG-FourQ学术研究报告
一、 研究作者、机构及发表信息
本项研究的论文标题为“EG-FourQ: An Embedded GPU-Based Efficient ECC Cryptography Accelerator for Edge Computing”。主要作者包括Jiankuo Dong、Pinchang Zhang (IEEE会员)、Kaisheng Sun、Fu Xiao (IEEE会员)、Fangyu Zheng以及Jingqiang Lin (IEEE高级会员)。研究团队主要来自中国的两所高校与研究机构:南京邮电大学计算机学院的Jiankuo Dong、Pinchang Zhang、Kaisheng Sun和Fu Xiao;中国科学院信息工程研究所信息安全国家重点实验室的Fangyu Zheng;以及中国科学技术大学网络空间安全学院的Jingqiang Lin。此项研究成果于2022年9月9日在线发表,并于2023年5月24日发布正式版本,收录于电气电子工程师学会(IEEE)的知名期刊《IEEE Transactions on Industrial Informatics》2023年6月刊,第19卷第6期。
二、 研究学术背景与目标
主要科学领域:本研究属于密码工程(Cryptographic Engineering)与高性能计算的交叉领域,具体聚焦于椭圆曲线密码学(Elliptic Curve Cryptography, ECC)算法在特定硬件平台上的高效实现技术,其应用背景是工业物联网(Industrial Internet of Things, IIoT)和边缘计算(Edge Computing)。
研究动机与背景: 随着工业4.0技术的发展,IIoT中的嵌入式设备呈爆炸式增长,大规模网络攻击和安全事件频发,对信息安全提出了严峻挑战。IIoT设备对计算性能和能耗有严格要求,这给计算复杂度较高的公钥密码算法带来了巨大压力。公钥密码学,特别是ECC,在数字签名、密钥交换等安全协议中扮演核心角色,但其性能瓶颈制约了在资源受限的IIoT环境中的广泛应用。
近年来,由微软团队提出的FourQ曲线作为一种新型高效ECC曲线,因其参数透明、安全性高且性能远超NIST P-256等传统曲线而备受关注。FourQ基于扭曲爱德华兹曲线(Twisted Edwards Curve)定义在二次扩域Fp²上(p = 2^127 - 1),能以更短的密钥长度提供约128比特的安全强度,其标量乘法速度在通用平台上可比NIST P-256快4到5倍。尽管已有研究在CPU、ARM、FPGA甚至ASIC上对FourQ进行了优化实现,但基于嵌入式图形处理器(GPU)的完整实现尚属空白。
同时,以NVIDIA Jetson系列为代表的嵌入式GPU设备,因其强大的并行计算能力和相对较低的功耗,正作为边缘计算节点或AI加速器被广泛部署于IIoT应用中。然而,针对嵌入式GPU平台的密码算法加速研究,尤其是对FourQ这类高效ECC曲线的支持,仍然缺乏。
研究目标: 基于上述背景,本研究旨在填补这一空白,核心目标是:设计并实现首个在GPU平台上(特别是嵌入式GPU)完整、高效的FourQ椭圆曲线公钥密码加速方案,命名为EG-FourQ。具体目标包括: 1. 从底层有限域运算、点运算到顶层标量乘法,在嵌入式GPU上完成FourQ的首次完整软件实现。 2. 通过精细化的优化策略,充分挖掘嵌入式GPU的计算潜力,追求超越现有其他嵌入式平台(如ARM CPU、Intel CPU、FPGA等)以及桌面GPU的能效比优势。 3. 将EG-FourQ打造为一个高效的密码学边缘计算模块,为IIoT系统提供更强大的密码服务能力。
三、 研究详细工作流程与方法
EG-FourQ的实现工作是一个系统性的密码工程优化过程,其工作流程遵循典型的ECC分层结构(标量算术层、点算术层、有限域算术层),并针对NVIDIA嵌入式GPU平台(特别是Jetson Xavier)的架构特点进行了从底层到顶层的全方位定制化设计。主要流程与技术创新如下:
1. 基于PTX ISA的有限域(Fp)高效实现 这是整个加速器性能的基础。研究团队首先在有限域算术层进行了关键创新: * 数据表示:采用四个32位整数(4×32-bit)来表示Fp域中的大整数(范围[0, 2^128)),相较于FourQlib库使用的五个26位整数表示法(5×26-bit),这种表示虽然牺牲了一些冗余位,但将乘法复杂度降低了约1.56倍(5^2 vs 4^2),更符合GPU SIMT架构对规整数据运算的需求。 * 大整数运算:直接使用NVIDIA的低级并行线程执行指令集架构(PTX ISA)内联汇编来实现128位大整数的加法、乘法和平方运算,避免了高级语言编译可能带来的性能损失。例如,加法通过一系列add.cc(带进位加)指令链式完成,并妥善处理最高位进位。 * 常时延模约减:这是本研究的核心创新点之一。针对梅森素数p = 2^127 - 1的快速模约减,通常需要循环处理进位直至结果小于p,但这会导致GPU线程分支,破坏性能。研究团队设计了两种确定性的、指令数固定的约减方案: * 加法约减(对应图3):针对加法结果(进位为0或1),巧妙地将结果的最高位(topbit)与进位合并,然后通过一次固定的累加操作完成约减,避免了循环判断。 * 乘法约减(对应图4及算法2):针对256位乘法结果,提出了比传统“分治后乘加”更高效的方案。该方案将约减操作与乘积累加(MAD)指令交错执行:先执行四个madc.lo.cc指令处理低半部分与2倍高半部分低32位的累加;然后处理合并后的进位;最后执行一个add.cc和三个madc.hi.cc指令完成剩余高位的累加。整个过程指令数固定,无分支,确保了常时延,符合抗侧信道攻击的要求。
2. 二次扩域(Fp²)运算优化 基于优化后的Fp运算,高效实现了Fp²上的加法、乘法、平方和求逆运算。这些运算被构建为Fp基本操作的组合(如表II所示)。其中,乘法和平方通过公式变形减少了必要的Fp乘法次数,求逆则利用共轭元素法转化为一次Fp求逆和数次Fp乘/加/减。
3. 点运算层(点加与倍点)的寄存器优化 在点算术层,研究采用扩展扭曲爱德华兹坐标(Extended Twisted Edwards Coordinates)。核心优化在于最大化寄存器重用,最小化临时变量。 * 优化的点加(表III):点加操作P = P + Q被精心设计,使得计算过程完全复用输入点P和预计算点Q的坐标变量,无需引入任何额外的域寄存器。相比之下,参考实现[11]需要额外的6个域寄存器。寄存器占用的减少直接提升了GPU线程的并发能力,因为更多的线程可以同时活跃在流多处理器(SM)上。 * 优化的倍点(表IV):对于倍点操作P = [2]P,通过调整域运算的顺序,将所需临时域寄存器的数量从参考实现[11]的2个减少到1个。例如,通过结合步骤8和9的加减法,利用左移1位实现加法,并基于保留的进位进行模减法。
4. 标量乘法顶层设计与优化 在标量算术层,实现了完整的FourQ标量乘法算法(算法1)。优化措施包括: * 标量分解:将256位标量k分解为四个64位分量(a1, a2, a3, a4)。针对分解函数中所需的特殊运算c = ((a × b) >> 256),设计了定制化的乘法例程,避免了计算完整的256位乘积,节省了约40%的乘加指令。 * 预计算表与访存优化:预计算包含8个点的查找表T。由于每个线程的基点P可能不同(变量基标量乘法),所有线程的预计算表总量(对于峰值配置,16 blocks × 256 threads/block)高达4MB,远超共享内存容量,因此存放于全局内存。为了加速全局内存访问,使用了GPU高效的uint4向量类型,实现了一次性加载4个32位整数。 * 主循环优化:主循环执行64次点倍和64次点加操作。除了使用上述优化的点运算外,还应用了固定窗口等方法。
5. 实验与性能评估方法 研究在NVIDIA Jetson AGX Xavier平台上进行综合实验。平台设置为最高性能模式(30W TDP,实测运行功耗约36W)。评估指标包括: * 吞吐量:每秒完成的标量乘法操作数(kops/s)。 * 时延:单次标量乘法计算时间(ms)。 * 功耗:平台执行算法时的实时功率(W)。 * 能效比:单位功耗下的吞吐量(kops/s/W)。 研究通过调整CUDA内核的两个关键参数来寻找性能最优配置:每个线程块的线程数(threads/block)和线程块数量(block num.),总批量大小(batch size)为二者乘积。通过大量实验绘制性能曲线,确定峰值性能点。
四、 主要研究结果与数据分析
实验结果表明,EG-FourQ在嵌入式GPU平台上实现了突破性的性能。
1. 最优性能配置与峰值结果 如图6所示,当threads/block = 256且block num. = 16时,系统达到峰值吞吐量。在此配置下: * 吞吐量:1717 kops/s(即每秒可完成约171.7万次标量乘法)。 * 时延:2.38 ms(单次操作)。 * 平台功耗:约36 W(如图7所示)。 * 能效比:高达47.70 kops/s/W。
图7展示了在threads/block = 256时,不同批量大小下的功耗与能效比变化。能效比曲线与吞吐量曲线趋势一致,在峰值吞吐量点也取得了最优能效比,表明性能提升并非以能效恶化为代价。
2. 与CPU平台的性能对比(表VI) * vs. 同平台ARM CPU:在相同的Jetson Xavier平台上,使用其8核ARMv8 CPU进行对比。 * OpenSSL库的Curve25519实现:吞吐量83 kops/s,功耗23W。 * FourQlib库的FourQ实现:吞吐量307 kops/s。 * EG-FourQ的能效比分别是它们的20.63倍和5.57倍,吞吐量分别是它们的20.7倍和5.6倍。 * vs. 顶级服务器CPU: * 在Intel Xeon E5-2699v3(18核,TDP 145W)服务器CPU上: * OpenSSL (Curve25519):吞吐量302 kops/s。 * FourQlib (FourQ):吞吐量1061 kops/s。 * EG-FourQ(一个仅36W的边缘设备)的吞吐量,超越了OpenSSL的5.67倍,也达到了FourQlib的1.61倍。 在能效比上,EG-FourQ具备巨大优势。
3. 与GPU平台的性能对比(表VI) * vs. 桌面/服务器GPU(基于浮点运算):工作[12]在NVIDIA Tesla P100(TDP 250W)上使用双精度浮点(DPF)实现了Curve25519,吞吐量6192 kops/s(当前最快纪录之一)。仅比较GPU TDP,EG-FourQ的能效比(47.70 kops/s/W)约为P100方案(~24.77 kops/s/W)的1.92倍。 若考虑整机功耗,优势更明显。 * vs. 桌面GPU(基于整数运算):工作[14]在GTX 1080上实现了最快的基于整数的Curve25519。EG-FourQ的能效比是其约3.00倍。 * vs. 同平台嵌入式GPU:工作[15]在同一Jetson Xavier平台上实现了Ed25519,功耗39.6W。EG-FourQ的吞吐量是其1.75倍,这得益于对FourQ曲线的精心优化以及FourQ自身相对于Ed25519的性能优势。
4. 抗侧信道攻击分析 研究从理论层面论证了EG-FourQ具备抗时序和缓存攻击的能力:在有限域层,所有运算指令数恒定;在点运算层,优化未引入分支;在标量乘法层,主循环次数固定。这些特性共同保障了实现的常时延性。
五、 研究结论与价值
本研究成功设计并实现了首个在嵌入式GPU平台上的完整FourQ椭圆曲线密码加速器——EG-FourQ。通过从有限域运算、点运算到标量乘法的全栈优化,特别是创新的常时延模约减方案和极致的寄存器重用策略,EG-FourQ在NVIDIA Jetson Xavier上取得了卓越的性能:在36W功耗下实现了1717 kops/s的吞吐量和47.70 kops/s/W的能效比。
科学价值与应用价值: * 科学价值:证明了在资源受限的嵌入式GPU上实现高性能、高能效的现代ECC算法是可行且高效的。研究提供了一套针对GPU SIMT架构优化ECC底层运算(特别是梅森素数域运算)的方法论,对密码工程和高性能计算领域有借鉴意义。 * 应用价值:EG-FourQ为IIoT边缘计算场景提供了一个强大的密码计算模块。其性能甚至超越了高端服务器CPU,而功耗仅为其零头。这使得在工业边缘侧部署高强度、高频率的公钥密码操作(如批量设备认证、安全通信建立)成为可能,显著提升了IIoT系统的整体安全性和实时性。此外,该方案也可作为云端的密码加速器,提供高效的密码服务。
六、 研究亮点
七、 其他有价值内容
论文附录提供了使用PTX ISA实现的大整数平方和乘法例程的伪代码,为其他研究者复现或借鉴其底层优化细节提供了参考。此外,研究也得到了江苏省重点研发计划、国家自然科学基金、中国博士后科学基金等多个项目的支持,体现了该研究受到学术界的重视和认可。