物联网轻量级认证加密算法ASCON的软硬件协同设计
本文以ASCON为加密核心算法,在FPGA SoC(Field-Programmable System-on-Chip)平台上进行了软硬件协同设计研究。通过自定义硬件IP核设计优化策略(如流水线技术、先验计算省时策略等),实现了ASCON算法在嵌入式设备上的高效运行。实验表明,在软硬件协同工作下,ASCON的加解密速度至少是纯软件实现的7.93倍,并且内存占用显著降低90%以上。与多种物联网设备的软件实现相比,FPSoC平台表现出色,在性能上提升了约7.93倍并降低了近90%的内存需求。该方法为物联网安全应用提供了高效的解决方案,并具有广泛的推广价值[26-31]。
摘要:
本文针对轻量级认证加密算法ASCON,在FPGA SoC平台上进行了软硬件协同设计研究。通过自定义IP核优化策略(如流水线技术、先验计算等),实现了ASCON在嵌入式设备中的高效运行。实验表明,在软硬件协同工作下,ASCON的加解密速度提升约7.93倍,并且内存占用减少90%以上。与多种物联网设备的软件实现相比,FPSoC平台表现出色,在性能上提升了约7.93倍并降低了近90%的内存需求[26-31]。关键词: ASCON, 软硬件协同设计, 物联网, 轻量级认证加密
目录
0 引言
图1
图2
1 自定义硬件IP核设计
1.1 自定义IP核的优先策略
图3
1.2 两种基本函数实现
图4
图5
图6
1.3 先验计算优化设计
1.4 时序优化设计
2 软件设计
图7
图8
图9
图10
3 性能验证
3.1 程序时间及内存测试方法
图11
3.2 性能分析
图12
4 结束语
摘要
ASCON被认为是2021年NIST轻量级认证加密征集方案中最有可能成为国际标准的算法之一。它专为物联网设备资源受限环境设计,在现有公开文献中尚无基于该算法的安全加速核设计公布。本研究团队开发了一种针对ASCON协议的软硬件协同优化方案。通过S盒优化、先验计算以及创新性的流水线架构等硬件手段,在物联网安全认证应用领域显著提升了ASCON执行效率的同时实现了内存占用水平的有效控制。实验结果表明,在性能方面实现了8倍以上的提升,并且存储器开销缩减至原来的10%以下。特别地,在主流嵌入式处理器平台上成功移植了ASCON协议,并通过对比测试验证了该方法的优势所在:不仅提升了运行速度,在存储器占用方面也达到了至少90%以上的缩减效果。该方法不仅适用于开发基于ASCON协议的安全专用集成电路(如SoC),同时也具备较高的灵活性和可扩展性。
关键词: 物联网 ; ASCON ; 软硬件协同设计 ; 硬件IP核 ; FPSoC
0 引言
研究者探索利用低计算开销的密码方案以确保物联网设备在资源受限环境下的安全性[1-2]。在物联网领域中,密码算法被视为实现数据完整性与机密性不可或缺的关键技术手段[3]。尽管如此,在实际应用中仍面临诸多挑战:确保信息安全的同时兼顾数据完整性和机密性成为了物联网系统面临的主要安全挑战[4]。其中一种高效的安全解决方案是关联数据认证加密技术:它能够同时满足机密性、完整性和真实性的要求,并且具有良好的性能表现和较低资源消耗特征[5-6]。该方案于2018年入选CAESAR竞赛决选,并成为轻量级认证加密方案的核心候选之一[7-8]。值得注意的是,在后续的研究中,NIST将其列为受限设备环境下轻量级认证加密标准的一种推荐解决方案,并被列入十种主流解决方案之一以供实际应用参考 [9-10].
ASCON是基于海绵结构的代换-置换网络(SPN, substitution-permutation network)密码算法[8],采用海绵体结构可以有效防止自适应的密码泄露[11],而SPN 保证了算法能以较少的资源实现数据快速扩散已达到良好的密码学性能[12]。该算法主要包括两种变体ASCON_128和ASCON_128A。ASCON加密过程如图1所示,ASCON解密过程如图2所示, ASCON包括初始化、关联数据处理、明文/密文处理、终结化4个部分[8],算法基本模块是320位输入输出的排列函数(permutation)、基本数据处理单元是轮函数(round),初始数据状态由初始向量IV、密钥K、公共消息N构成,a和b的数值表明排列函数调用的轮函数次数。ASCON_128 和ASCON_128A的区别分为两个部分:b的数值,b=6时是ASCON_128模式,b=8时是ASCON_128A模式;处理的数据块大小,前者每次处理 64 位,后者每次处理128位。ASCON的数据处理状态大小是320位的,每经过算法流程的一个步骤,状态更新一次,经过初始化和关联数据的处理之后,将64位明文和 320 位状态数据的低 64 位进行异或即可得到64位密文,然后再对状态排列更新,继续对下一段明文进行加密。认证加密算法之所以能够对传输过程进行认证,就是因为认证加密算法在输出密文时会附带一个标签,在解密过程中,首先对标签进行验证,在同样的初始向量下如果标签一致那么证明密文在传输过程中没有被更改,具有真实性、完整性和机密性。在ASCON中,首先通过初始化和关联数据处理将初始化向量信息和关联数据信息包含进320位状态数据,在加强了算法的健壮性的同时,又结合终结化模块的排列和异或操作输出 128 位标签用于实现认证。
在目前 NIST 对轻量级认证加密算法的基准测试中,研究者们通常会选择性地进行测试,在纯软件或纯硬件之间做出权衡,并未充分考虑算法作为片上系统功能模块的可能性。其中一种前沿的技术是现场可编程系统芯片(FPGA, field programmable gate array)[13]。该技术由处理系统端(PS, processing system)和可编程逻辑端(PL, programmable logic)两个部分组成[14]。AXI4总线不仅实现了PL端与PS端的数据传输[15],还通过其高效的双向通信机制,在保证ARM处理器灵活性和扩展性的同时,显著提升了系统的可靠性水平[16-17]。此外,在FPGA架构的支持下,硬件开发周期大幅缩短,并且能够更好地满足实时性和低功耗的需求[18-22]。基于XILINX ZYNOQ-7000系列的ZYNQ-7020开发板进行软硬件协同设计,在确保设计兼容性的前提下实现了高性能、低功耗的目标
图1

单击此处将跳转到《New Window opens》这篇文章的详细内容页面
图****1ASCON****加密过程
图2

图****2ASCON****解密过程
在规划ASCON系统的软硬件协同工作模式的同时
1 自定义硬件IP核设计
软硬件协同设计主要包含软件和硬件两方面的内容[26]。其中软件部分通过将测试向量输入到 hardware IP 核中来验证其设计的有效性。因此,在软硬件协同设计中,工作的重点应放在 hardware 的 IP 核设计方案上,而 software 设计的主要工作则是在 NIST 提供的标准测试文件基础上进行优化,以实现软硬件在 FPSOC 平台上的协调工作。
该系统架构在图3中进行展示。ASCON 加解密功能包含五个关键模块:初始化模块、关联数据处理模块、加密模块、解密模块和终结化模块。在本文的优化 IP 核设计中运用先验计算技术,在优化后的IP核设计中取消了初始化模块,并通过多级函数分解策略实现了加解密功能的高效运行。具体而言,在时序设计方面,则采用了流水线架构策略将ASCON的加解密功能划分为独立的功能块,并以每6个时钟周期完成一次加密或解密操作。同时对各功能块之间的输入信号进行了严格的时序同步处理,并通过动态控制机制保证了运算过程中的稳定性与可靠性。这种优化方案不仅显著降低了开发成本,在硬件资源占用方面也实现了相较于传统方案近40%的效率提升。
1.1 自定义IP核的优先策略
本研究涉及的总线体系主要包括 AXI 系列中的 AXI-1.0(AXI v1.0)、AXI-1.0 Lite(即 AXILite)以及 AXILite 适配器版本(即 AXILite-Stream)。其中重点讨论的是 AXILite 方案及其在特定应用中的实现优势与适用性分析。该方案通过引入轻量化设计策略,在保证基本功能的同时实现了对系统资源占用的最小化控制。针对物联网环境下设备数量庞大且单体功耗较低的特点,在本研究中选择了采用 AXILite 方案作为主要实现架构选择依据
图3

图3自定义IP系统架构
由于AXI4_Lite总线每次最多只能传输32位数据,在基于算法原理的情况下
1.2 两种基本函数实现
在ASCON架构中包含了两类基础的数据处理单元:分别是基于轮函数的最小数据处理单元和基于排列函数的最小数据处理模块。其中包含两个关键组件:P6.V模块和P8.V模块。这些功能模块是通过在轮函数的基础上实施串行迭代的方式来实现的[30]。具体而言,在每次循环中系统会反复调用轮函数,并将每次循环输出传递给下一轮作为输入;这样不断重复直到完成对整个数据集合进行排序整理的工作流程得以完成。尽管采用串行迭代方法能够提高算法效率(即减少算法运行速度),但在硬件资源利用方面仍然存在一定的优化空间;通过合理设计可以有效降低对FPGA硬件资源的需求量
完成最小数据处理单元的处理任务需要遵循三个关键步骤:轮常量加层、S盒非线性映射层以及线性扩散层[31]。这些步骤共同构成了最小数据处理单元的功能模块架构。其中轮常量加与线性扩散层采用了异或运算与移位操作来实现功能[8]。为了减少FPGA运行时的功耗消耗,在此方案中本文不对其施以时钟分配策略。原始设计中的S盒结构如图6所示。基于FPGA丰富的查找表资源以及ASCON算法的设计理念,本文对S盒进行了优化。具体而言,在最小数据处理单元内部实现了5位的64个独立S盒进行并行优化设计,在这种架构下最大限度地提升了内部数据处理效率,并将优化后的查找表信息存储在表1中以便后续调用。
图4

图4排列函数的PS与PL端的数据搬运
图5

图5最小数据处理单元**——**轮函数
图6

图6原S盒设计
1.3 先验计算优化设计
ASCON算法在数据处理的起始环节进入初始化阶段,在此阶段主要完成了明文参数、关联数据参数以及ASCON配置参数的相关处理工作。这些确定下来的参数具有固定不变性特征,在这种特性基础上我们可以直接基于P12排列函数进行先验计算优化设计,并将计算结果直接注入FPGA系统中以实现下一轮关联数据的处理流程。
在物联网环境下下的关联信息具有一定的价值属性,并非必须通过额外加强安全性来保护[32]。即这些信息能够被公开使用,并且应当禁止第三方进行任意修改操作(例如嵌入式设备中的唯一标识码)。在一个安全设计的物联网系统中,加密解密双方均应具备完整的先验知识关于相关联的信息内容。因此可以通过将关键的信息直接嵌入到硬件架构之中来实现两方面的保障:一方面能够有效防止未经授权的 third-party 人员获取敏感信息;另一方面则可显著减少硬件资源占用量。为了提高处理效率,在实际操作中应当根据待处理信息的具体长度来决定所需调用的不同层次排列函数数量。由于我们已知相关联的信息内容及其分布特征,在设计阶段即可完成必要的预计算工作:即通过预先计算并确定排列结果的方式将其直接输出给相关模块使用,并避免冗余调用及时间开销的问题。
1.4 时序优化设计
在时序优化设计阶段,主要采用了流水线技术和拍号同步技术[33-34]。根据功能划分,则主要包括关联数据处理方面的优化、加密模块的性能调优以及解密模块的性能提升。
系统时序上,将排列函数看作一个整体,在一个时钟周期内完成一次排列函数处理,以面积换速度,提高了 ASCON 算法运行速度。ASCON 作为一个完整的算法,包含很多相互关联的模块,FPGA无法在一个时钟周期处理完所有的数据。因此,有必要采取流水线设计将相互关联的多个模块分割开,在各个部分插入寄存器,将结果缓存起来,等待下一个时钟上升沿再对数据进行处理,对数据逐步加工。关联数据处理和加密数据处理在时序设计上具有一致性,它们在时序上的步骤划分都能表示为字节展开、数据填充和最终的P6排列3个部分,其中字节展开和数据填充只和顶层输入相关,只包括简单的数据位展开和异或操作,把这两步组合逻辑合在一起采用一个时钟周期完成。而最终的 P6排列和上一步的输出结果相关,需要额外进行一个周期的流水线分割。最终数据的处理从输入到输出实现了两个时钟周期的流水线式设计。解密的时序设计和前面两个模块存在一些不同,它由字节展开、密文解密、状态恢复和数据填充 4 个部分组成。结合 FPGA 对数据位操作的优越性,可以将后面 3 个部分直接看作一个整体进行一个时钟周期的数据处理,为字节展开单独分配一个时钟,总体上解密部分也能在两个时钟周期内完成。
在局部处理环节中,同一模块的所有输入数据必须在同一时钟周期开始处理。然而,在模块间数据传输的设计过程中,通常会遇到许多信号并非同时到达的情况。因此需要对这些信号进行打拍处理。以解密模块为例,在其工作流程中可以看到有三个不同的输入信号:分别是输入密文参数(ct_adlen)、输入关联数据(ct_sin)以及输入密文(ct)。这些信号并不具备同步到达的特点,并且可以观察到输入密文信号具有最大的时延值。基于此特征,在设计流水线电路时需要分别对其进行打拍处理:将输入密文参数信号进行4个时钟周期的打拍、将输入关联数据进行2个时钟周期的打拍(如图7所示)。经过打拍后所有的信号均与输入密文处于同一时钟沿上,并在此基础上完成流水线设计工作
表1S****盒优化的查找表
| x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1a | 1b | 1c | 1d | 1e | 1f |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S(x) | 4 | b | 1f | 14 | 1a | 15 | 9 | 2 | 1b | 5 | 8 | 12 | 1d | 3 | 6 | 1c | 1e | 13 | 7 | e | 0 | d | 11 | 18 | 10 | c | 1 | 19 | 16 | a | f | 17 |
新窗口打开| 下载CSV
2 软件设计
为了评估本文软硬件协同设计在基准三性能指标下的效率,在完成关键IP核封装打包后的基础上构建了系统工程BlockDsign框架,并对软硬件协同工作的总体架构进行了详细规划(如图8所示)。具体而言,在系统的参数设置方面对PL端的工作频率进行了精确统一配置——将其设定为100 MHz;而对于PS端则分别设置了DDR读写频率以及CPU频率,并分别为这两部分分配了精确值——分别是666.67 MHz和533.33 MHz;同时,在ARM核上实施的纯软件测试采用了与前文一致的系统配置方案(如图9所示)。整个流程包括模块化设计、代码编译以及最终的实际导入测试环节:首先完成模块设计后生成顶层封装;随后通过编译生成二进制文件;最后将比特流导入ARM核心进行处理;与此同时,在PS端完成了软件部分的设计工作并实现了各模块之间的软硬件协同运行功能。
在NIST的标准第三部分已提供了算法测试文件。该标准第三部分主要针对软件实现情况开展测试,并要求在软硬件协同设计的实际需求下对测试文件进行调整以实现PS端测试文件与PL端硬件IP核之间的协同工作。具体包括两个主要方面:一是添加PS端与PL端的发送与接收接口;二是根据AXI_Lite协议规定,在总线上进行数据传输的所有数据字段宽度必须限定为32位。对不符合协议规范的数据类型需执行类型转换操作以确保其能在AXI4-Lite总线上传输。
参考XILINX官方手册[14]中指出
图7

图7解密模块时序仿真
图8

图8软硬件协同工作系统设计**——Block Design**
图9

图****9ARM核系统设计——Block Design
图10

图10协同工作数据交互流程
原测试文件中描述了两种关键参数的数据类型转换过程:明文信息与密钥参数均被定义为unsigned char型变量,并占据8个二进制位的空间。通过在这些变量前面附加一定数量的零(高位填充零),将它们扩展至更大的数值范围(即转换为uint32_t型变量),从而占据额外的空间以存储更大的数值(共占用32个二进制位)。类似地,在处理加密后的数据时(即加解密流程),也需要对原始的数据结构体进行重新定义:将原有的结构体成员重新设定为uint32_t型变量,并相应地调整其二进制宽度(从8位扩展至32位),以便所有参与协同工作的组件能够顺利交换和处理加密后的数据块
3 性能验证
监测软硬件协同工作的PS端内存消耗及ASCON算法加密解密耗时,并通过对ZYNQ上ARM架构及多种主流物联网平台的软件架构进行比较分析,评估设计在性能方面的优越性。
3.1 程序时间及内存测试方法
基于基准三的要求, 评估算法系统的运行效率和资源消耗. 单次加密解密的时间测量可采用Xtime\_GetTime函数作为时间测量模型.
Tused=(Tend−Tcur)×1 000 000COUNTS_PER_SECOND (1)Tused=(Tend−Tcur)×1 000 000COUNTS_PER_SECOND (1)
其中Tend与Tcur分别代表待测程序段的结束时间和起始计数值两者的时长差异即等于待测程序定时器计数的变化量COUNTS_PER_SECOND则代表每秒内的基准计数值
为了准确获取ASCON进行1 089次加密与解密所需的总运行时长,则需将每一次加密和解密所需的时间累积相加以获得总运行时长。我们采用指针数组策略,在程序设计中将每一个加密与解密操作的相关变量地址存储于一个预先分配好的数组空间中,并通过该动态变化的数据结构实现资源的有效管理。随后,在程序执行过程中会不断更新该数据区域内的相关参数值,并在适当的时候调用相应的函数模块完成数据交换操作。最后通过计算该动态数据区域内的所有参数值之和即可确定整个系统在处理一次完整加密与解密操作所需的平均时延。
算法内存占用主要关注ASCON本身的性能参数设置,在测试过程中不包括测试向量文件的影响。具体做法是将一个空值命名为Main.c并存放在ASCON工程目录下,在启动后观察当前运行时的内存占用情况(用此数值减去空值Main.c单独占用的内存资源),所得结果即得出该算法所需内存占用量。
通过ASCON平台实现的多平台软件在横向对比中展示了如图11所示的结果;软硬件协同设计与ARM核软件在纵向对比中展现了如图12所示的具体情况。
图11

图****11ASCON****的多平台软件实现横向对比
3.2 性能分析
基于软硬件协同机制,在加密解密输出结果与基准已知答案文本之间进行了对比实验。实验数据显示加密解密过程均正确,并最终实现了ASCON算法的软硬件协同工作。横向对比结果显示,在ESP32所组成的5种设备组中性能最差。其中内存占用量大且运行时间过长不适合作为物联网设备使用。本研究选用的FPSoC ARM核测试显示其运行速度最佳,并比其他平台高4倍以上;对于内存管理方面,则STM32F7芯片组表现出色;而FPSoC平台则稍逊一筹。综合评估表明,在软件实现条件下FPSoC中的ARM核部分最为高效。
图12

图12软硬件协同设计与ARM核软件实现纵向对比
从软硬件协同设计与ARM核的纵向对比来看,在如图12所示的研究框架下
基于软硬件协同机制分析表明,在算法实现速度方面ASCON_128与ASCON_128A表现出完全一致的表现特征原因在于PS端传递至PL端的关键参数数量始终保持一致状态同时PL端完成一次加密解密所需的时钟周期也完全相同因此在运行效率上两者并无明显差异
从实验结果分析可知,在软硬件协同工作的场景中,ASCON 两种变体均展现出显著的优势。相较于纯软件实现方案(包括参考架构和优化架构),在运行速度方面都有显著提升。此外,在软件部分所涉及的设备内存占用需求相比纯软件方案,在内存占用方面也实现了大幅缩减。对于对延迟、速率以及内存消耗要求较高的物联网场景而言,这种改进方案具有重要的应用价值。
表2ASCON_128的FPGA****资源消耗
| 资源类型 | 使用量/片 | 总量/片 | 使用率 |
|---|---|---|---|
| Slice LUTs | 39 224 | 53 299 | 73.73% |
| Slice Register | 7 446 | 106 400 | 7% |
| F7复用器 | 844 | 26 600 | 3.17% |
| F8复用器 | 67 | 13 300 | 0.5% |
新窗口打开| 下载CSV
表3ASCON_128A的FPGA****资源消耗
| 资源类型 | 使用量/片 | 总量/片 | 使用率 |
|---|---|---|---|
| Slice LUTs | 29 471 | 53 200 | 55.40% |
| Slice Register | 6 555 | 106 400 | 6.16% |
| F7复用器 | 202 | 26 600 | 0.76% |
| F8复用器 | 27 | 13 300 | 0.20% |
新窗口打开| 下载CSV
4 结束语
ASCON 是一种轻量级认证加密算法,在本研究中我们选定 FPSoC 平台作为实验基础,并成功实现了 ASCON 算法的软硬件协同设计体系。该体系不仅实现了与传统纯软件实现方式进行的有效对比分析,并通过详细性能评估验证了基于硬件IP核心的协同设计策略具有显著的优势:其运算时间与内存占用效率均优于现有同类方案。随着物联网技术的蓬勃发展趋势,在物联网应用层面而言这一创新性设计方法已具备广泛的应用价值:它不仅可应用于网络关节点设备层面上的数据接收解密功能实现(通过将 ASCON 硬件IP核整合至FPSoC的功能层结构中,并将数据接口引出至接收端(PS)模块),还能完成异构网络协议转换打包发送任务;此外,在后续研发阶段我们计划在此基础之上进一步优化系统性能参数指标,并将其应用于生产新一代具有轻量级认证加密功能的物联网安全芯片开发项目中。
