Processing math: 8%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

Neptune:一种通用网络处理器微结构模拟和性能仿真框架

林涵越, 吴婧雅, 卢文岩, 钟浪辉, 鄢贵海

林涵越, 吴婧雅, 卢文岩, 钟浪辉, 鄢贵海. Neptune:一种通用网络处理器微结构模拟和性能仿真框架[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202440084
引用本文: 林涵越, 吴婧雅, 卢文岩, 钟浪辉, 鄢贵海. Neptune:一种通用网络处理器微结构模拟和性能仿真框架[J]. 计算机研究与发展. DOI: 10.7544/issn1000-1239.202440084
Lin Hanyue, Wu Jingya, Lu Wenyan, Zhong Langhui, Yan Guihai. Neptune: A Framework for Generic Network Processor Microarchitecture Modeling and Performance Simulation[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202440084
Citation: Lin Hanyue, Wu Jingya, Lu Wenyan, Zhong Langhui, Yan Guihai. Neptune: A Framework for Generic Network Processor Microarchitecture Modeling and Performance Simulation[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202440084

Neptune:一种通用网络处理器微结构模拟和性能仿真框架

基金项目: 国家自然科学基金项目(62002340,61872336,61572470);中国科学院青促会基金项目(Y201923)
详细信息
    作者简介:

    林涵越: 1999年生. 博士研究生. CCF会员. 主要研究方向为专用计算体系结构与网络计算系统

    吴婧雅: 1994年生. 博士. CCF会员. 主要研究方向为专用计算体系结构和异构计算系统优化

    卢文岩: 1990年生. 博士,副研究员,硕士生导师. CCF会员. 主要研究方向为深度学习加速器、数据库加速器、专用计算体系结构和异构计算系统优化

    钟浪辉: 1974年生. 博士,高级工程师,CCF会员. 主要研究方向为低时延技术和证券行业处理

    鄢贵海: 1982年生. 博士,研究员,博士生导师. CCF会员. 主要研究方向为计算机体系结构、专用加速器设计和智能芯片体系结构

    通讯作者:

    鄢贵海(yan@ict.ac.cn

  • 中图分类号: TP302

Neptune: A Framework for Generic Network Processor Microarchitecture Modeling and Performance Simulation

Funds: This work was supported by the National Natural Science Foundation of China (62002340, 61872336, 61572470) and the Program of the Youth Innovation Promotion Association, CAS (Y201923).
More Information
    Author Bio:

    Lin Hanyue: born in 1999. PhD candidate. Member of CCF. His main research interests include domain-specific architecture and network computing systems

    Wu Jingya: born in 1994. PhD. Member of CCF. Her main research interests include domain-specific computer architecture and heterogeneous computing system optimization

    Lu Wenyan: born in 1990. PhD, associate professor, master supervisor. Member of CCF. His main research interests include deep learning accelerator, database accelerator, domain-specific computer architecture and heterogeneous computing system optimization

    Zhong Langhui: born in 1974. PhD, senior engineer. Member of CCF. His main research interests include low latency technology and securities quotation processing

    Yan Guihai: born in 1982. PhD, professor, PhD supervisor. Member of CCF. His main research interests include computer architecture, domain-specific accelerator design and intelligent chip architecture

  • 摘要:

    网络包处理是网络设备的基本功能,涉及报文修改、校验和与哈希计算、数据包镜像或过滤、统计限速等多项任务. 作为网络包处理的重要部件,网络处理器(network processor,NP)基于处理器结构,为网络设备提供线速的性能和充分的可编程能力,但其架构多样,可分为单段式和多段式架构,现有模拟方法无法同时对二者性能进行模拟仿真. 因此,提出一种通用网络处理器的结构模拟和性能仿真框架Neptune,采用多段式架构作为硬件抽象,使用事件链表、核间队列结构为数据通路和多段式架构模拟提供保障,同时满足单段式架构模拟需求. 另外,借助同步图计算模式进行准确的并行模拟,并采用混合事件与时间驱动方法保障模拟高效性. 实际测试中,Neptune以95%以上精确度支持2种架构的模拟,并以3.31MIPS的性能对网络处理器进行模拟,相较PFPSim取得一个数量级的性能提升. 最后,展示了3个运用该框架进行网络处理器优化分析的应用案例.

    Abstract:

    Network packet processing is a fundamental function of network devices, involving tasks such as packet modification, checksum and hash computation, mirroring, filtering, and packet metering. As a domain-specific processor, Network Processors (NP) can provide line-rate performance and programmability for network packet processing. However, due to different design requirement, architecture of NP differs, including single-phase NP and multi-phase NP, posing challenges for NP designers. Existing simulation methods mainly target single NP or single architecture and are not available to explore both of the architectures. This paper proposes Neptune, an analyzing framework for generic network processor microarchitecture modeling and performance simulation. Based on detailed analysis, Neptune adopts multi-phase NP architecture as the hardware model while providing ability to simulate single-phase architecture. Besides, Neptune employs event list mechanism and inter-core queues to support simulation of different data paths and various scheduling strategies in multi-phase NP. Furthermore, Neptune utilizes bulk synchronous parallel graph computing mechanism and takes advantage of both event-driven and time-driven simulation, ensuring accuracy and efficiency. Our experiment shows that Neptune achieves over 95% accuracy in simulating both of the architectures and simulates network processors at a performance of 3.31MIPS, achieving an order of magnitude improvement over PFPSim. We illustrate the universality and capability of the Neptune simulation framework through three specific cases. Firstly, we evaluated multi-phase and single-phase NP, showing that single-phase NP can achieve up to a 1.167x performance improvement. Secondly, we optimize the packet parsing module using a programmable pipeline and analyze its performance differences. Finally, we use Neptune to test the performance of the packet processing engine under different thread counts, providing insights for software and hardware multi-threading optimization.

  • 属性签名(attribute-based signature, ABS)[1]是一种灵活的密码学工具,能用属性替代身份来标识用户. 在ABS方案中,签名者通过访问策略对消息进行签名,验证者验证该签名可以判断签名者是否满足访问策略但不能确定其身份和具体属性,在访问控制中保障了签名用户的隐私性. 在后续的研究中,可追踪的属性签名[2]被提出以平衡ABS匿名性的使用.

    属性签名和属性加密[3]类似,也可分为签名策略属性签名(signature-police attribute-based signature, SP-ABS)[4-5] 和密钥策略属性签名(key-policy attribute-based signature, KP-ABS)[6]. 对于SP-ABS,属性嵌入在密钥中,访问策略嵌入在签名中,适用于1对多的认证场景,能对不同的访问策略直接提供不同的签名,而无需更新密钥. 现有的SP-ABS方案在验证阶段的配对运算或指数运算大多和属性个数关联,导致计算开销巨大. 其次,访问策略是由验证者直接提供给签名者签名,容易泄露访问策略当中隐私敏感的信息. 因此,设计一个支持策略隐藏且计算高效的SP-ABS方案是有必要的.

    SM9是中国商用密码中的标识密码算法标准[7],包括数字签名算法、密钥交换协议、密钥封装机制和公钥加密算法. SM9签名算法通过身份标识用户,是一种安全性和效率都很高的签名方案. 基于属性的签名通过属性标识用户,身份也可以看作是属性的一部分,因此SM9签名算法作为基于身份体系下的密码方案,十分适用于属性签名算法的改造. 目前,在面向国家密码算法自主可控的战略需求下,尚未有基于SM9的高效SP-ABS方案.

    针对上述问题,本文提出一种基于SM9的支持策略隐藏的可追踪属性签名(policy hidden traceable attribute-based signature, PH-TABS)方案. 本文的贡献主要有3点:

    1)通过采用将属性拆分为名和值的线性秘密共享方案(linear secret sharing scheme,LSSS)构造基于SM9的SP-ABS方案,该方案同时具有策略可隐藏和身份可追踪的功能.

    2)通过安全性分析,证明本文方案在随机谕言机模型下具有不可伪造性.

    3)通过计算开销对比分析,表明本文方案在验证阶段只需要常数量级的配对运算和指数运算,相较于现有方案有更高的计算效率. 其次,实验仿真对比结果也表明本文方案在性能上优于现有方案.

    基于属性的密码方案为数据的细粒度访问控制提供了支持,其中基于属性的加密在发展[8-10]中扩展出了基于属性的签名,Maji等人[1]提出了基于属性的签名定义,但是他们提出的实例很复杂,其中第3个实例被证明是不安全的[11]. Xiong等人[12]通过将计算委托给服务器以降低设备的计算开销,使得属性签名可应用于工业物联网. Su等人[13]结合区块链提出一种可撤销的属性签名方案,用于保护电子病历共享系统中的用户隐私. Li等人[14]提出一种多权威机构的基于属性的混合签名方案,保障了边缘计算环境下用户的身份隐私和数据可靠性. 张应辉等人[15]在服务器辅助的基础上提出了可验证的属性签名方案. Yang等人[16]利用属性加密和属性签名提出一个医疗数据共享方案. 上述基于属性的签名方案着重于解决计算效率和用户隐私等问题,隐藏签名者身份是属性签名的优点,但一些恶意的签名者可以滥用该优点签署任何消息并否认他们的签名行为. 因此,可追踪的基于属性的签名方案被不少人重视并提出. Cui等人[17]在车辆特设网络中通过可追溯性和可撤销性扩展了标准的属性签名方案,防止车辆通信受到匿名性滥用的影响. Gu等人[18]在标准模型中提出一种支持单调谓词的可追踪属性签名方案. Belguith等人[19]提出一个新颖的可追踪的属性签名以实现云中匿名认证. 李继国等人[20]为防止属性密钥和敏感信息的泄露提出了可追踪的属性基净化签名方案.

    在基于属性的访问控制研究中,往往涉及访问策略的使用,然而访问策略在某些情况下可能会包含敏感信息,例如医疗记录中的访问策略“糖尿病 AND (医生 OR 护士)”容易暴露患者可能存在糖尿病相关问题. 因此策略隐私也成为了研究人员们关注的重点. Zhang等人[21]将属性表示为属性名和属性值,与密码文本相关的访问策略只包括属性名,从而实现了部分策略隐藏. 王悦等人[22]通过合数阶双线性群提出一种基于包含正负及无关值的“与门”的策略隐藏方案. Han等人[23]利用属性拆分的LSSS[21]提出一种可实现撤销和白盒追踪的策略隐藏方案. 在属性基的加密机制中,策略由数据拥有者持有并嵌入在加密密文中,需对数据访问者隐藏,在1对多的认证场景中,策略由验证者持有并提供给签名者签署消息,同样也需要对签名者隐藏.

    SM9标识密码算法发展至今已相继成为国际标准和国家标准,但基于SM9构造的属性基签名方案不多. 唐飞等人[24]构造了基于SM9的可追踪属性签名方案. 朱留富等人[25]通过在线/离线技术将高昂的操作预计算,实现轻量级的基于SM9的属性签名方案. 然而文献[2425]方案均是KP-ABS类型的方案,KP-ABS将策略嵌入到密钥中,属性嵌入到签名中,在面对多种不同签名策略的场景时,需要先变更密钥再生成签名,反观SP-ABS能直接生成不同策略的签名.

    综上所述,针对1对多的认证场景,现有的属性签名方案大多存在匿名性滥用、计算开销大、策略隐私容易泄露等问题,本文在SM9签名算法的基础上提出一种支持策略隐藏的可追踪属性签名方案,通过将拆分的LSSS矩阵构造访问结构嵌入到签名中,以及将属性嵌入到密钥中,能实现高效安全的细粒度访问控制.

    本节主要介绍文中用到的相关知识,包括符号约定、双线性映射、q-SDH困难问题、访问结构、线性秘密分享方案和SM9标识签名算法.

    本文使用ϑ表示安全参数,N为大素数,ZN表示整数集合ZN={0, 1, 2, …,N1},{0, 1}*表示任意长度的比特串. 加法群上的标量乘运算用[k]Pi表示,其中Pi是加法群上的生成元,kZN. M是大小为l×n的矩阵,ρ是将M的行与属性相关联的函数,Mi表示矩阵M的第i行. V表示与访问结构(M,ρ)相关的属性值集合.

    G1G2是2个N阶加法循环群,GTN阶乘法循环群,P1P2分别是G1, G2的生成元,ψ表示G1G2的映射,即ψ(P2) = P1,双线性映射e: G1×G2GT满足3个性质.

    1)双线性. 对于任意mnZN,有以下等式成立:e([m]P1, [n]P2) = e([n]P1, [m]P2) = e(P1, P2)mn.

    2)非退化性. e(P1, P2)1.

    3)可计算性. e(P1, P2)是可以用有效方法计算的.

    q-SDH困难问题[26]描述如下:令PG1的生成元,QG2的生成元,随机选择cZN并给定一个q+2个元素的元组实例(P, Q, [a]Q, [a2]Q, …, [aq]Q). 如果没有一个多项式时间算法能以不可忽略的优势ε计算(c,[1c+a]P),则称q-SDH问题是困难的.

    设置P = {P1, P2, …, Pn}是一组参与实体,如果B, C满足BABCCA,那么集合A2P是单调的. 如果一个单调的访问结构A是由P上的非空子集组成的集合,即A2P,那么包含在A中的集合称为授权集,否则称为非授权集.

    A = {A1, A2, …, An}是属性名集合,n为属性名个数,对于任意AiA有属性值Ai={ai,1, ai,2, …, ai,m},其中m为属性名Ai的属性值个数. 设N是一个大素数,访问结构通过(M, ρ)表示,其中M是大小为l×n的矩阵,ρ是一个映射函数,将矩阵M的第iMi映射到A中的属性名. 定义在N上的线性秘密共享方案由以下算法组成:

    1)Share((M, ρ), s)→{λi}il:设sA上需要共享的秘密值,选择随机向量 {\boldsymbol{\upsilon}} =(s,{y_2},…,{y_n}),其中{y_2},…,{y_n} \in {\mathbb{Z}_N},计算s上相应属性名\rho (i)的秘密份额{\lambda _i} = {\boldsymbol{\upsilon}} \cdot {{\boldsymbol{M}}_i}.

    2)Reconstruction((M, \rho ), S)→{s}:设S \in \mathfrak{A}是一个授权集合,对于索引集I = \{ i:\rho (i) \in S\} \subset \{ 1,2, …,l\} ,存在常数集合 {\{ {\omega _i} \in {\mathbb{Z}_N}\} _{i \in I}} 使得\displaystyle\sum_{i \in I} {{\omega _i}{{\boldsymbol{M}}_i}} = (1, 0, …, 0),因此通过计算 \displaystyle\sum_{i \in I} {{\omega _i}{\lambda _i}}=s 可恢复出秘密.

    Attr = ({I_\mathcal{H}},\mathcal{H})为签名者的属性集合,其中{I_\mathcal{H}} \subseteq A是签名者的属性名集合,\mathcal{H} = {\{ {h_i}\} _{i \in {I_\mathcal{H}}}}是签名者的属性值集合,定义线性秘密共享方案的访问结构\gamma = ({\boldsymbol{M}},\rho , \mathcal{V})[23],其中\rho Mi映射到A中的属性名,每个属性名只出现1次, \mathcal{V} = {\{ {\nu _{\rho (i)}}\} _{i \in [1,l]}} 是与访问结构(M, \rho )相关的属性值集合. 如果存在I = \{ i:\rho (i) \in S\} \subset \{ 1,2, …,l\} 满足(M, \rho )并且对于任意i \in I{h_{\rho (i)}} = {\nu _{\rho (i)}},则认为签名者属性集Attr满足访问结构\gamma ,否则Attr不满足\gamma . 设\overline \gamma = ({\boldsymbol{M}},\,\rho )为没有属性值集合的不完整访问结构.

    根据SM9相关标准“GM/T 0044—2016 SM9标识密码算法”[7],SM9签名算法可以概括为4个算法:

    1)系统初始化算法Setup(). 输入安全参数\kappa ,选择哈希函数H1H2: {0, 1}*{\mathbb{Z}_N},密钥生成中心KGC选择hid为公开的签名私钥生成函数识别符,KGC随机选择a \in {\mathbb{Z}_N}作为主私钥MSK,计算主公钥MPK = [a]P2,公开MPK和系统公共参数PP = {G1, G2, GT, P1, P2, H1, H2, hid},PP作为以下3个算法的默认输入.

    2)密钥生成算法KeyGen(). 输入给定用户A的身份标识IDA和主私钥MSK,KGC计算用户A的签名私钥S {K_{{A}}} = \left[\dfrac{a}{{{H_1}(I{D_{{A}}}||hid,N) + a}}\right]{P_1}.

    3)签名算法Sign(). 输入签名消息m、用户A的私钥SKA和主公钥MPK. 用户A随机选择r \in {\mathbb{Z}_N},计算h = H2(m ||e{({P_1},MPK)^r}, N),S = [(r - h)]SKA,输出签名\sigma = (h,S).

    4)验证算法Verify(). 输入系统主公钥MPK、消息m、用户A的身份标识IDA和签名 \sigma ' . 验证者计算P = [H1 (ID_A\| hid, N )] P2 + MPK,验证h = H2( m\|e( S',P )e({P_1}, MPK)^h , N)是否成立,若成立,则签名\sigma 合法,否则签名\sigma 无效.

    本节主要给出PH-TABS方案的形式化定义和安全模型. 方案的系统框架如图1所示,主要包括可信中心(KGC)、验证者以及签名者3个部分,其中签名者和验证者均属于用户的一部分. KGC负责为用户生成属性私钥SKUse,并根据用户签名追踪用户的真实身份IDUse,签名者根据验证者提供的消息m和访问结构\overline \gamma = ({\boldsymbol{M}},\rho )执行签名算法生成签名\sigma ,验证者通过用户的签名验证该用户是否满足访问策略,验证通过返回accept,否则返回reject.

    图  1  PH-TABS方案框架
    Figure  1.  Framework of PH-TABS scheme

    PH-TABS方案由5个算法组成:

    1)设置算法:Setup(\vartheta ,U)→{PP, MPK, MSK}. 输入安全参数\vartheta 和系统属性个数U,输出公共参数PP、主公钥MPK和主私钥MSK、KGC秘密保存主私钥MSK.

    2)密钥生成算法:KeyGen(PP, MSK, IDUse, Attr)→{SKUse}. 输入公共参数PP、主私钥MSK、用户身份IDUse和用户属性集Attr = ({I_\mathcal{H}},\mathcal{H}),输出属性私钥SKUse.

    3)签名算法:Sign(PP, m, SKUse, \overline \gamma )→{\sigma }. 输入公共参数PP、消息m、属性私钥SKUse和访问结构\overline \gamma = ({\boldsymbol{M}},\rho ),输出签名\sigma .

    4)验证算法:Verify(PP, MPK, m, \sigma ', \gamma )→accept or reject. 输入公共参数PP、主公钥MPK、消息m、签名\sigma '和访问结构\gamma = ({\boldsymbol{M}},\rho ,\mathcal{V}),若签名验证通过,输出accept,否则输出reject.

    5)追踪算法:Trace(\sigma )→{IDUse}. 输入签名\sigma ,输出用户身份IDUse.

    PH-TABS方案的正确性要求对所有的(PP, MPK, MSK)←Setup (\vartheta ,U)、所有属性Attr \subseteq U、所有属性私钥SKUseKeyGen (PP, MSK, IDUse, Attr)、所有用户属性满足访问结构\overline \gamma (Attr)=1、所有消息m \in {0,1}*、所有签名\sigma Sign (PP, m, SKUse, \overline \gamma ),均有accept←Verify (PP, MPK, m, \sigma , \gamma ).

    在本节中,定义PH-TABS在选择性签名策略和自适应选择消息攻击(selective signing policy and adaptively chosen message attack, SP-CMA)下存在不可伪造的安全模型如下:

    1)设置. 伪造者\mathcal{F}声明挑战访问策略{\delta ^*}并将其发送给算法\mathcal{B}. \mathcal{B}执行系统初始化算法,公开公共参数PP和主公钥MPK,秘密保存主私钥MSK.

    2)密钥询问{\mathcal{O}_{\text{K}}}. 伪造者\mathcal{F}自适应查询关于属性集Attr的属性私钥,其中{\delta ^*}(Attr) \ne 1并且Attr \subseteq U,算法\mathcal{B}执行密钥生成算法输出属性私钥SKUse并发送给\mathcal{F}.

    3)签名询问{\mathcal{O}_{\text{S}}}. 伪造者\mathcal{F}询问关于任意访问策略\delta 和消息m的签名. \mathcal{B}执行签名算法,输出\sigma 并发送给\mathcal{F}.

    4)伪造. 伪造者\mathcal{F}通过挑战访问策略{\delta ^*}输出关于消息m^* 的签名{\sigma ^*},若满足以下条件,则称\mathcal{F}能攻破PH-ABS的存在不可伪造安全模型.

    \mathcal{F}没有询问过任何关于属性集Attr*的密钥,其中{\delta ^*}( Attr*) = 1.

    \mathcal{F}没有询问过任何关于访问策略{\delta ^*}和消息m^* 的签名.

    {\sigma ^*}是一个关于访问策略{\delta ^*}和消息m^* 上的有效签名.

    定义1. 如果所有多项式时间伪造者\mathcal{F}攻破上述存在不可伪造安全模型的概率是可忽略的,那么PH-ABS在选择性签名策略和自适应选择消息攻击下是存在不可伪造的.

    本节主要给出PH-TABS方案的具体构造.

    1)Setup(\vartheta ,U)→{PP, MPK, MSK}. KGC执行该算法,初始化系统参数. 给定安全参数\vartheta 和系统属性个数U,定义系统属性集合Ai = {ai,1, ai,2, …, ai,m}{}_{i \in [1,|U|]},其中Ai为属性名,ai,mAi对应的属性值,设置阶均为N的加法循环群G1, G2和乘法循环群GTP1, P2分别是G1, G2的生成元,给定密码杂凑函数H1, H2: {0, 1}*\mathbb{Z}_N^*,计算群GT中的元素\mathcal{G} = e({P_1},MPK) .

    KGC选定私钥生成函数识别符hidhid = 0x01),随机选择a \in {\mathbb{Z}_N}作为主私钥,计算主公钥MPK = [a]{P_2} .

    公开公共参数PP=(N, P1, P2, G1, G2, hid, \mathcal{G}, H1, H2, { {A_i} = \{ {a_{i,1}},{a_{i,2}}, …,{a_{i,m}}\} _{i \in [1,|U|]}}).

    2)KeyGen(PP, MSK, IDUse, Attr)→{SKUse}. KGC执行该算法,根据用户属性Attr生成私钥SKUse. 算法输入主私钥MSK、用户身份IDUse \in {0, 1}*、用户属性集Attr = ({I_\mathcal{H}},\mathcal{H}),其中{I_\mathcal{H}} \subseteq A是用户的属性名集合,\mathcal{H} = {\{ {h_i}\} _{i \in {I_\mathcal{H}}}}是用户的属性值集合. KGC计算t1 = H1(ID_{\rm Use}\| hid, N ) + a,随机选择t \in {\mathbb{Z}_N},计算t2 = (a + t) \cdot t_1^{ - 1},最后计算用户的属性私钥:

    \begin{aligned} & s{k_1} = [{t_2}]{P_1} \text{,} \\ & s{k_2} = [t{a^{ - 1}}]{P_1} \text{,}\\ & s{k_3} = [t]{P_1} \text{,}\\ & s{k_4} = {H_1}(I{D_{{\text{Use}}}}||hid,N) \text{,} \end{aligned}

    对于任意i \in {I_\mathcal{H}},计算

    s{k_i} = [t{a^{ - 1}}{h_i}]{P_1} .

    输出SKUse = (sk1, sk2, sk3, sk4, { ski }_{i \in {I_\mathcal{H}}}).

    3)Sign(PP, m, SKUse, \overline \gamma )→{\sigma }. 验证者给定不完整的访问结构\overline \gamma = ({\boldsymbol{M}},\rho )和消息m \in {0, 1}*作为输入,签名者执行该算法,继续输入属性私钥SKUse. 首先判断签名者属性是否满足访问结构,即\overline \gamma ({I_\mathcal{H}}) = 1,若不满足,算法输出⊥,表示签名失败;否则,继续如下计算:

    随机选择r \in {\mathbb{Z}_N},计算群GT中的元素w = {\mathcal{G}^r},计算h = H2(m\|w , N),L = ( r - h ) mod N,若L = 0,重新执行该算法;否则,继续计算

    {\sigma _0} = [L]s{k_1} .

    L为访问结构\overline \gamma = ({\boldsymbol{M}},\rho )的秘密值,其中M是大小为l×n的矩阵,\rho 是将M的行与属性相关联的函数,选择2个随机向量{\boldsymbol{\upsilon }}= y2, …, yn \in {\mathbb{Z}_N}{\boldsymbol{\eta}} = yn+2, …, y2n \in {\mathbb{Z}_N}. 对于i \in [1, l],计算{\lambda _i} = {\boldsymbol{\upsilon}} \cdot {{\boldsymbol{M}}_i}(表示每个属性所占秘密值的份额),{\tau _i} = {\boldsymbol{\eta}} \cdot {{\boldsymbol{M}}_i},其中Mi表示M的第i行向量. 随机选择d \in {\mathbb{Z}_N},设 I = \{ i:\rho (i) \in {I_\mathcal{H}}\} \subset \{ 1, 2, …,l\} ,计算K = \displaystyle\sum_{i \in I} {s{k_i}} ,然后计算:

    \begin{aligned} &{\sigma _1} = [s{k_4}]{P_2} + MPK \text{,}\\ &{\sigma _2} = [d]s{k_3} \text{,}\\ &{\sigma _3} = [d]s{k_2} \text{,}\\ &{\sigma _i} = [{\lambda _i}]s{k_2} + [{\tau _i}d]K . \end{aligned}

    最后,输出签名\sigma = (h,{\sigma _0},{\sigma _1},{\sigma _2},{\sigma _3},{\{ {\sigma _i}\} _{i \in I}}).

    4)Verify(PP, MPK, m, \sigma ', \gamma )→accept or reject. 验证者执行该算法,验证签名的有效性. 算法输入主公钥MPK,消息m、签名\sigma '以及访问结构\gamma = ({\boldsymbol{M}},\rho ,\mathcal{V}),其中\mathcal{V} = {\{ {v_{\rho (i)}}\} _{i \in [1,l]}}是与访问结构({\boldsymbol{M}},\rho )相关的属性值. 验证者首先验证

    e({\sigma '_3},MPK) = e({\sigma '_2},{P_2}) \text{,}

    若等式不成立,算法输出⊥,表示验证失败;否则计算群GT中的元素

    t = {\mathcal{G}^{h'}} .

    I = \{ i:\rho (i) \in {I_\mathcal{H}}\} \subset \{ 1,2, …,l\} ,如果 {I_\mathcal{H}} 满足访问结构\gamma ,则可以找到一组常数{{\omega _i} \in {\mathbb{Z}_N}}_{i \in I},使得\displaystyle\sum_{i \in I} {{\omega _i}{\lambda _i}} = L\displaystyle\sum_{i \in I} {{\omega _i}{\tau _i}} = 1,计算

    W = \displaystyle\sum_{i \in I} {[{\omega _i}]{\sigma '_i}} \text{,}
    V = \displaystyle\sum_{i \in I} {{v_{\rho (i)}}} .

    计算群GT中的元素

    u = \dfrac{{e({\sigma '_0},{\sigma '_1})}}{{e(W,MPK)e({\sigma '_2},[ - V]{P_2})}} \text{,}
    w' = u \times t .

    计算h2 = H2(m\|w', N),检查等式{h_2} = h'是否成立,成立则表示签名验证通过,算法输出accept,否则输出reject.

    5)Trace(\sigma )→{IDUse}. KGC执行该算法,追踪签名用户的真实身份. 由于{\sigma _1}= [sk4]P2 + MPK,因此KGC可以在为用户生成密钥时提前预计算{\sigma _1}的值,而sk4 = H1(ID_{\rm Use}\| hid, N )包含用户身份IDUse,KGC可维护二元组列表(IDUse, {\sigma _1}). 算法输入用户签名\sigma ,KGC通过查表即可得到签名用户的真实身份IDUse并输出.

    若一个诚实用户的属性集满足验证者提出的访问结构,那么该用户的签名有效且可以正确地通过验证算法,正确性分析如下:

    当用户的属性集Attr = ({I_\mathcal{H}},\mathcal{H})满足访问结构\gamma = ({{\boldsymbol M}},\,\rho ,\mathcal{V}),那么该用户的属性名集合{I_\mathcal{H}}和属性值集合\mathcal{H} = {\{ {h_i}\} _{i \in {I_\mathcal{H}}}}能通过验证算法正确计算w' = {\mathcal{G}^r}. 设 I = \{ i:\rho (i) \in {I_\mathcal{H}}\} \subset \{ 1,2, …,l\} ,根据LSSS的性质可以计算\displaystyle\sum_{i \in I} {{\omega _i}{\lambda _i}} = L\displaystyle\sum_{i \in I} {{\omega _i}{\tau _i}} = 1,然后计算w'.

    \begin{split}&e({\sigma }_{0},{\sigma }_{1})=\\& e\left(\left[\dfrac{L(a+t)}{{H}_{1}(I{D}_{\text{Use}}||hid,N)+a}\right]{P}_{1},[{H}_{1}(I{D}_{\text{Use}}||hid,N)+a]{P}_{2}\right)=\\& e{(}{{P}_{1}},P_2)^{L(\alpha+t)},\end{split}
    \begin{split} & e(W,MPK)=e\left({ \displaystyle\sum _{{}_{i\in I}}[{\omega }_{i}]}{\sigma }_{i},[a]{P}_{2}\right)=\\ &e\left({ \displaystyle\sum _{{}_{i\in I}}[{\omega }_{i}{\lambda }_{i}]}s{k}_{2}+{\displaystyle\sum _{i\in I}[{\omega }_{i}{\tau }_{i}d]K},[a]{P}_{2}\right)=\\ &e\left(\left[Lt{a}^{-1}+dt{a}^{-1}{\displaystyle\sum _{i\in I}{h}_{i}}\right]{P}_{1},[a]{P}_{2}\right)=\\ &e(P_1,P_2)^{Lt}e(P_1,P_2)^{dt\sum\limits_{i\in I}h_i},\end{split}
    \begin{split} e({\sigma _2},[ - V]{P_2}) =& e\left( [dt]{P_1},\left[ - \displaystyle\sum_{i \in I} {{v_{\rho (i)}}} \right]{P_2}\right) =\\ & e{({P_1},{P_2})^{\Big[ - \sum\limits_{i \in I} {{v_{\rho (i)}}} \Big]dt}} \text{,} \end{split}
    \begin{split} &{w}^{\prime }=u\times t=\dfrac{e({\sigma }_{0},{\sigma }_{1})}{e(W,MPK)e({\sigma }_{2},[-V]{P}_{2})}\times {\mathcal{G}}^{h}=\\ &\dfrac{e{({P}_{1},{P}_{2})}^{L(\alpha +t)}}{e{({P}_{1},{P}_{2})}^{Lt}e{({P}_{1},{P}_{2})}^{dt{\sum\limits_{i\in I}{h}_{i}}}e{({P}_{1},{P}_{2})}^{\Big[-{\sum\limits _{i\in I}{v}_{\rho (i)}}\Big]dt}}\times {\mathcal{G}}^{h}=\\ &e{({P}_{1},{P}_{2})}^{\alpha L}\times {\mathcal{G}}^{h}={\mathcal{G}}^{\alpha (r-h)}\times {\mathcal{G}}^{h}={\mathcal{G}}^{r},\end{split}

    因此,用户的签名有效且能正确通过验证算法,PH-TABS方案满足正确性要求.

    PH-TABS方案的策略隐藏性主要体现在签名算法和验证算法中. 在签名算法中,验证者给定签名者不完整的访问结构\overline \gamma = ({\boldsymbol{M}},\rho ),该访问结构只能通过矩阵M和函数\rho 映射到属性名,不包含属性名对应的属性值集合 \mathcal{V} = {\{ {\nu _{\rho (i)}}\} _{i \in [1,l]}} ,因此签名者执行签名算法时无法知道访问结构的具体属性值,也就无法知道完整的访问策略信息. 在验证算法中,验证者自身持有完整的访问结构\gamma = ({\boldsymbol{M}},\rho ,\mathcal{V}),其在验证算法中通过完整的访问结构\gamma 验证签名者提供的属性签名是否合法,只有当签名者的属性名对应的属性值集合\mathcal{H} = {\{ {h_i}\} _{i \in {I_\mathcal{H}}}}满足{h_{\rho (i)}} = {\nu _{\rho (i)}}时,签名验证通过,否则,签名不合法. 因此,PH-TABS方案能实现策略的部分隐藏,保障验证者的策略隐私.

    属性签名中的串通攻击是指多个属性不满足访问结构的用户试图结合他们的密钥来生成一个有效的签名. 在PH-TABS方案的密钥生成算法中,密钥SKUse当中嵌入了随机数t \in {\mathbb{Z}_N}t相当于盲化因子,这起到了区分用户密钥的作用,使得不同用户的密钥无法结合. 例如一个访问策略需要满足属性A和属性B,用户Alice拥有属性A的密钥s{k_{{\text{Alice}},i}} = [{t_{{\text{Alice}}}}{a^{ - 1}}{h_A}]{P_1},用户Bob拥有属性B的密钥s{k_{{\text{Bob}},i}} = [{t_{{\text{Bob}}}}{a^{ - 1}}{h_B}]{P_1},满足属性A和属性B的密钥s{k_{AB,i}} = [{t_{AB}}{a^{ - 1}}{h_i}]{P_1},而{t_{{\text{Alice}}}} \ne {t_{{\text{Bob}}}} \ne {t_{AB}},他们无法通过密钥结合的方式形成一个新的密钥. 因此PH-TABS方案是满足抗串通攻击性的.

    定理1. 如果q-SDH问题在(G1, G2)上成立,那么PH-TABS方案是不可伪造的.

    证明. 假设存在一个多项式时间伪造者\mathcal{F}能以不可忽略的优势\varepsilon 攻破存在性不可伪造安全,那么可以构造一个概率多项式时间算法\mathcal{B}以不可忽略的优势解决q-SDH问题. \mathcal{B}\mathcal{F}的安全游戏如图2所示,其中 {\mathcal{C}_{q{\text{-SDH}}}} 表示q-SDH问题,{\mathcal{C}_{{\text{SP-CMA}}}}表示选择性签名策略和自适应选择消息攻击. 安全游戏具体如下:

    图  2  PH-TABS方案安全游戏
    Figure  2.  Security game of PH-TABS scheme

    1)设置. \mathcal{F}选定挑战访问结构{\overline \gamma ^*}并发送给\mathcal{B}\mathcal{B}获得一个q-SDH的随机实例(P, Q, [a]Q, [a2]Q, …, [aq]Q),其中P =\psi (Q). 令主私钥MSK = a,哈希询问:假设\mathcal{F}可以进行{q_{\rm H}}次哈希询问,\mathcal{B}维护一个空列表L1并记录二元组(IDi,{\;\beta _i}),若\mathcal{F}询问关于IDi的哈希值H1已在L1中,\mathcal{B}直接返回{\;\beta _i},若IDi未曾被询问,则令H1 (ID_i\|hid, N ) ={\;\beta _i}并记录(IDi,{\;\beta _i})在L1中. 定义2个多项式:

    f(X) = \prod\limits_{i = 1}^{q - 1} {(X + {\beta _i})} = \displaystyle\sum_{i = 0}^{q - 1} {{c_i}{X^i}} \text{,}
    {f_i}(X) = \dfrac{{f(X)}}{{X + {\beta _i}}} \text{,}

    其中ci \in {\mathbb{Z}_N}. P1P2分别是G1G2上的生成元,令P1 = PP2 = Q,然后\mathcal{B}计算MPK = [a]P2 = [a]Q\mathcal{G}= e(P1, MPK) = e(P, Q)a.

    2)密钥询问{\mathcal{O}_{\text{K}}}. 假设\mathcal{F}可以进行{q_{\rm K}}次密钥询问. \mathcal{F}\mathcal{B}询问身份标识为IDi的签名密钥SKUse[i]\mathcal{B}查询表L1,若IDi不在表中,则询问失败,\mathcal{B}退出游戏. 否则,设置 t = af\left( a \right) \mathcal{B}计算SKUse[i]为:

    \begin{aligned} & s{k_{[i],1}} = \left[\dfrac{a}{{a + {\beta _i}}} + a{f_i}(a)\right]\psi (Q) \text{,}\\ &s{k_{[i],}}_2 = [f(a)]\psi (Q) \text{,}\\ &s{k_{[i],3}} = [af(a)]\psi (Q) \text{,}\\ &s{k_{[i],4}} = {\beta _i} \text{,}\\ &s{k_{[i],j}} = [f(a){h_j}]\psi (Q) . \end{aligned}

    然后\mathcal{B}IDi的签名密钥SKUse[i]发送给\mathcal{F}.

    3)签名询问{\mathcal{O}_{\text{S}}}. 假设\mathcal{F}可以进行 q - 2 次签名询问且属性Attri 一定满足签名策略\overline \gamma (Attri) = 1. 设置r = h + \dfrac{1}{a} \mathcal{B}计算w ={\mathcal{G}^r}=e{(P,Q)^{h + \tfrac{1}{a}}}h = H2(m_i\|w,N ),然后\mathcal{B}继续计算L = rh = \dfrac{1}{a} ,随机选择d \in {\mathbb{Z}_N},计算签名 {\sigma _{[i]}} 如下:

    \begin{aligned} &{\sigma _{[i],0}} = [L]s{k_{[i],1}} = \left[\dfrac{1}{{a + {\beta _i}}} + {f_i}(a)\right]\psi (Q) \text{,}\\ &{\sigma _{[i],1}} = [s{k_{[i],4}}]{P_2} + MPK = [a + {\beta _i}]Q \text{,}\\ & {\sigma _{[i],2}} = [d]s{k_{[i],3}} = [daf(a)]\psi (Q) \text{,}\\ &{\sigma _{[i],3}} = [d]s{k_{[i],2}} = [df(a)]\psi (Q) \text{,} \end{aligned}
    {\sigma }_{[i],j} = [{\lambda }_{j}]s{k}_{[i],2}+[{\tau }_{j}d]{\displaystyle\sum _{j\in I}s{k}_{[i],j}}= \left[ {\lambda }_{j}f(a)+{\tau }_{j}d{\displaystyle\sum _{j\in I}{h}_{j}} \right] \psi {(}{Q}{)}.

    然后\mathcal{B}发送消息mi的签名 {\sigma _{[i]}} \mathcal{F}.

    4)挑战. \mathcal{F}发送(m_i^*,{\sigma ^*})给\mathcal{B}\mathcal{B}执行验证算法检查签名是否合法,不合法则挑战失败;否则,可得到 \sigma _0^* = \left[ \dfrac{{1 + f(a)}}{{a + {\beta _i}}} \right]\psi (Q) f(a) 利用长除法可得f(a) =\gamma (a)(a +{\beta _i}) + {\gamma _{ - 1}},其中\gamma (a) = \displaystyle\sum_{i = 0}^{q - 2} {{\chi _i}{a^i}} {\gamma _{ - 1}} \in {\mathbb{Z}_N},可得

    \begin{split}\left[\dfrac{1}{a+{\beta }_{i}}\right]P= & \dfrac{1}{1+{\gamma }_{-1}}({\sigma }_{[i],0}^{*}-[\gamma (a)]P)=\\& \dfrac{1}{1+{\gamma }_{-1}}\left(\sigma^*_{[i],0}-{\displaystyle\sum^{q-2}_{i=0}}[\chi_i a^i]P \right).\end{split}

    最后,\mathcal{B}通过查表L1获得{\;\beta _i},输出\Bigg({\beta _i},\left[\dfrac{1}{{a + {\beta _i}}}\right]P\Bigg)作为q-SDH问题的解.

    综上所述,若安全游戏完整地进行,则要成功通过各阶段. 通过 {q_{\rm K}} 次密钥询问,可得密钥全部成功的概率为{\left(\dfrac{{{q_{\text{K}}}}}{{{q_{\text{H}}}}}\right)^{{q_{\text{K}}}}};通过 q - 2 次签名询问,可得签名全部询问成功的概率为 {\left(\dfrac{{q - 2}}{{{q_{\text{H}}}}}\right)^{q - 2}} ;在密钥询问、签名询问均成功通过后,挑战成功的概率为\dfrac{1}{{{q_{\text{H}}}}}. 综合可得,\mathcal{B}获胜的概率为\dfrac{{{{({q_{\text{K}}})}^{{q_{\text{K}}}}}{{(q - 2)}^{q - 2}}}}{{{{({q_{\text{H}}})}^{{q_{\text{K}}} + q - 1}}}}\varepsilon . 总结,q-SDH问题是难解的,PH-TABS方案是不可伪造的. 证毕.

    在本节中,通过与现有工作进行比较,结果如表1所示. 文献[24-25]均给出了KP-ABS类型的基于SM9的属性签名方案,但KP-ABS在1对多认证场景中需要频繁地更新密钥,适用性不足. 文献[16, 19]均给出了SP-ABS类型的属性签名方案,但方案在验证阶段的配对运算均与属性个数相关,且不具备策略隐藏功能. 本文提出的PH-TABS方案,访问策略使用表达性丰富的LSSS,不仅具有策略隐藏和身份可追踪的功能,在验证阶段只需要常数量级的配对运算和指数运算,能支持高效的细粒度访问控制.

    表  1  方案比较
    Table  1.  Comparison of Schemes
    方案 类型 访问结构 可追踪 策略隐藏
    文献[24] KP-ABS Tree ×
    文献[25] KP-ABS And-Gates × ×
    文献[16] SP-ABS LSSS × ×
    文献[19] SP-ABS LSSS ×
    本文方案 SP-ABS LSSS
    注:“√”表示方案支持该功能;“×”表示方案不支持该功能.
    下载: 导出CSV 
    | 显示表格

    本节主要介绍本文方案与文献[16, 19]在计算开销、通信开销以及性能上的比较.

    本文方案与文献[16, 19]的计算开销对比如表2所示. 其中Te为群GT上的指数运算,Tp为双线性配对运算,Tmul为群G1G2上的标量乘运算,Tadd为群G1G2上的加法运算,i为签名者属性个数. 从表2中可以看出,本文方案在各阶段的计算中与属性相关的计算量均少于文献[16, 19],尤其在签名阶段和验证阶段中,本文方案只需常数量级的配对操作. 因此,随着属性个数的增长,相比文献[16, 19],本文方案的计算优势将越来越明显. 本文方案与文献[16, 19]的通信开销对比如表3所示. 其中|G|,|{G_T}|,|{\mathbb{Z}_N}|分别表示各个群元素的大小. 从表3中可以看出,本文方案在签名阶段和密钥生成阶段的通信开销和文献[19]相当,随着属性个数的增加,本文方案通信开销将远低于文献[16].

    表  2  方案计算开销对比
    Table  2.  Comparison of Computation Cost of Schemes
    方案设置密钥生成签名验证
    文献[16]i{T_{\text{p}}} + i{T_{\text{e}}} + i{T_{{\text{add}}}} 2i{T_{{\text{add}}}} 3i{T_{{\text{mul}}}} + (1 + 4i){T_{\text{p}}} + (1 + i){T_{\text{e}}}i{T_{\text{p}}} + 2i{T_{\text{e}}}
    文献[19](1 + i){T_{{\text{mul}}}} + {T_{\text{e}}}(4 + i){T_{{\text{add}}}} + (6 + 2i){T_{{\text{mul}}}} (7 + i){T_{{\text{add}}}} + (8 + 3i){T_{{\text{mul}}}} + 3{T_{\text{p}}} + {T_{\text{e}}} (1 + i){T_{{\text{add}}}} + (1 + 2i){T_{{\text{mul}}}} + (1 + i){T_{\text{p}}} + {T_{\text{e}}}
    本文方案{T_{{\text{mul}}}} + {T_{\text{p}}}(3 + i){T_{{\text{mul}}}}(1 + 2i){T_{{\text{add}}}} + (4 + 2i){T_{{\text{mul}}}} + {T_{\text{e}}}i{T_{{\text{add}}}} + (1 + i){T_{{\text{mul}}}} + 5{T_{\text{p}}} + {T_{\text{e}}}
    下载: 导出CSV 
    | 显示表格
    表  3  方案通信开销对比
    Table  3.  Comparison of Communication Cost of Schemes
    方案密钥生成签名
    文献[16]2i|G|(1 + i)|{G_T}| + i|G|
    文献[19](2 + i)|G|(3 + i)|G| + 2|{G_T}|
    本文方案(3 + i)|G| + |{\mathbb{Z}_N}|(4 + i)|G| + |{\mathbb{Z}_N}|
    下载: 导出CSV 
    | 显示表格

    本文方案与文献[16, 19]的各阶段性能以及总体性能对比如图3~7所示. 在操作系统64 b Windows11、Intel® CoreTM i5-11400H CPU、内存16 GB的实验环境下,通过Java编程语言及其JPBC(Java pairing based cryptography)[27]和BouncyCastle库仿真实现了本文方案与文献[1619]的方案,椭圆曲线选取256 b的BN曲线,曲线方程为{y^2} = {x^3} + 5,分别在属性个数为8,16,32,64的情况下测试了各个阶段以及总体方案的运行时间,其中实验数据均取给定属性个数下30次实验结果的平均值,其中文献[16, 19]是对称群下的方案,为保证实验对比条件的一致性,在仿真前均已将文献[16, 19]在通用方式下转换为非对称群下的方案[28].

    图  3  设置算法性能对比
    Figure  3.  Performance comparison of setup algorithm
    图  4  密钥生成算法性能对比
    Figure  4.  Performance comparison of key generation algorithm
    图  5  签名算法性能对比
    Figure  5.  Performance comparison of signing algorithm
    图  6  验证算法性能对比
    Figure  6.  Performance comparison of verifying algorithm

    性能对比实验结果表明,本文方案各阶段性能以及总体性能均优于文献[16, 19]. 尤其在验证阶段,本文方案只需常数量级的配对运算,随着属性个数的增加,性能优势明显.

    图  7  方案总体性能对比
    Figure  7.  Performance comparison of overall scheme

    为实现1对多认证场景下安全高效的细粒度访问控制,本文提出一种基于SM9的支持策略隐藏的可追踪属性签名方案,该方案在验证阶段只需常数量级的配对操作和指数操作,同时支持身份追踪和策略隐藏功能. 安全性分析中通过q-SDH难题证明了本文方案在随机谕言机模型下是不可伪造的,从功能、计算开销、通信开销以及性能4个方面的对比实验表明,本文方案有较高的效率.

    作者贡献声明:周权负责理论指导、方案分析、论文修改;陈民辉提出初步方案、实验仿真、论文初稿撰写;卫凯俊和郑玉龙负责实验分析、论文修改.

    https://github.com/p4lang/behavioral-model
  • 图  1   不同网络处理器架构示意图

    Figure  1.   Illustration of different architectures of network processors

    图  2   Neptune模拟硬件架构示意图

    Figure  2.   Illustration of simulated hardware architecture of Neptune

    图  3   包处理引擎PPE架构示意图

    Figure  3.   Illustration of the hardware architecture of PPE

    图  4   事件链表结构示意图

    Figure  4.   Illustration of the data structure of event list

    图  5   核间队列结构示意图

    Figure  5.   Illustration of the data structure of core queues

    图  6   Neptune顶层模拟架构示意图

    Figure  6.   Illustration of Neptune top-level simulation architecture

    图  7   BMv2集成Neptune框架示意图

    Figure  7.   Illustration of integrating BMv2 with Neptune

    图  8   不同网络处理器架构的配置支持

    Figure  8.   Illustration of configuration of different NP architecture

    图  9   NP与Neptune模拟器执行时间对比

    Figure  9.   Execution time comparison between NP and Neptune

    图  10   Neptune模拟性能评估

    Figure  10.   Evaluation of the performance of Neptune simulation

    图  11   3种NP架构在不同数据包中性能评估

    Figure  11.   Evaluation of Different NP Architecture in Different Packets

    图  12   包解析模块协议层次关系示意图

    Figure  12.   Illustration of hierarchy of protocols for parser

    图  13   VXLAN-TCP数据包层次图

    Figure  13.   Hierarchy of VXLAN-TCP packet

    图  14   不同线程数下包处理延时评估

    Figure  14.   Latency evaluation of packet processing under different thread counts

    表  1   Neptune功能验证参数配置

    Table  1   Configuration Parameters Required for Verification of Neptune

    参数类型参数名数值
    通用参数时钟频率/MHz800
    PPE内线程数1
    核内内存大小/B1 024
    包缓冲大小/MB1
    单段式架构参数PPE总数128
    集群数1
    每集群内PPE数128
    多段式架构参数PPE总数128
    集群数16
    每集群内PPE数8
    下载: 导出CSV

    表  2   不同多段式架构包处理阶段时间占比

    Table  2   Proportion of Packet Processing Time for Different Multi-Phase Architecture

    数据包类型 多段式-2段
    各段时间占比
    多段式-4段
    各段时间占比
    4O4-Hit 29∶71 28∶54∶0∶18
    4O4-Miss 35∶65 35∶65∶0∶0
    4O6 29∶71 28∶54∶0∶18
    6O4 29∶71 28∶55∶0∶17
    6O6 29∶71 28∶55∶0∶17
    TCP 16∶84 15∶58∶0∶26
    TCP-Pass 52∶48 52∶48∶0∶0
    Meter-Drop 20∶80 19∶59∶22∶0
    Meter-Pass 17∶83 16∶50∶17∶17
    ARP 1∶0 1∶0∶0∶0
    ICMP 1∶0 1∶0∶0∶0
    Passthrough 1∶0 1∶0∶0∶0
    下载: 导出CSV

    表  3   不同协议层数下不同包解析模块性能评估

    Table  3   Performance Evaluation of Packet Parser in Different Protocol Layers

    层次数 PPE平均周期 流水线平均周期
    1 16.0 68
    2 43.7 68
    3 57.0 68
    4 66.4 68
    5 75.5 68
    6 99.5 68
    7 115.4 68
    8 126.8 68
    9 136.8 68
    10 146.7 68
    11 155.0 68
    平均 126.8 68
    VXLAN-TCP 120.0 68
    下载: 导出CSV
  • [1]

    Gadre G, Badhe S, Kulkarni K. Network processor—A simplified approach for transport layer offloading on NIC[C]//Proc of the 2016 Int Conf on Advances in Computing, Communications and Informatics (ICACCI). Piscataway, NJ: IEEE, 2016: 2542−2548

    [2]

    Yang Mingran, Baban A, Kugel V, et al. Using trio: Juniper networks' programmable chipset-for emerging in-network applications[C]//Proc of the ACM SIGCOMM 2022 Conf. New York: ACM, 2022: 633−648

    [3]

    Krude J, Rüth J, Schemmel D, et al. Determination of throughput guarantees for processor-based smartnics[C]//Proc of the 17th Int Conf on Emerging Networking Experiments and Technologies. New York: ACM, 2021: 267−281

    [4] 赵玉宇,程光,刘旭辉,等. 下一代网络处理器及应用综述[J]. 软件学报,2021,32(2):445−474

    Zhao Yuyu, Cheng Guang, Liu Xuhui, et al. Survey and applications of next generation network processor[J]. Journal of Software, 2021, 32(2): 445−474(in Chinese)

    [5] 鄢贵海,卢文岩,李晓维,等. 专用处理器比较分析[J]. 中国科学:信息科学,2022,52(2):358−375 doi: 10.1360/SSI-2021-0274

    Yan Guihai, Lu Wenyan, Li Xiaowei, et al. Comparative study of the domain-specific processors[J]. Scientia Sinica Informationis, 2022, 52(2): 358−375(in Chinese) doi: 10.1360/SSI-2021-0274

    [6]

    Luo Yan, Yang Jun, Bhuyan L N, et al. NePSim: A network processor simulator with a power evaluation framework[J]. IEEE Micro, 2004, 24(5): 34−44 doi: 10.1109/MM.2004.52

    [7]

    Abdi S, Aftab U, Bailey G, et al. PFPSim: A programmable forwarding plane simulator[C]//Proc of the 2016 Symp on Architectures for Networking and Communications Systems. New York: ACM, 2016: 55−60

    [8]

    Bosshart P, Gibb G, Kim H S, et al. Forwarding metamorphosis: Fast programmable match-action processing in hardware for SDN[J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 99−110 doi: 10.1145/2534169.2486011

    [9]

    Moon Y G, Lee S E, Jamshed M A, et al. AccelTCP: Accelerating network applications with stateful TCP offloading[C]//Proc of the 17th USENIX Symp on Networked Systems Design and Implementation (NSDI 20). Berkeley, CA: USENIX Association. 2020: 77−92

    [10]

    Choi S, Shahbaz M, Prabhakar B, et al. λ-nic: Interactive serverless compute on programmable smartnics[C]//Proc of the 40th Int Conf on Distributed Computing Systems (ICDCS). Piscataway, NJ: IEEE, 2020: 67−77

    [11]

    Xi Shaoke, Li Fuliang, Wang Xingwei. FlowValve: Packet scheduling offloaded on NP-based SmartNICs[C]//Proc of the 42nd Int Conf on Distributed Computing Systems (ICDCS). Piscataway, NJ: IEEE, 2022: 347−358

    [12]

    Hypolite J, Sonchack J, Hershkop S, et al. DeepMatch: Practical deep packet inspection in the data plane using network processors[C]//Proc of the 16th Int Conf on Emerging Networking Experiments and Technologies. New York: ACM, 2020: 336−350

    [13]

    Cisco. Cisco Silicon One P100 processor data sheet [EB/OL]. (2021-10-25)[2024-01-18]. https://www.cisco.com/c/en/us/solutions/collateral/silicon-one/silicon-one-p100-processor-ds.html

    [14]

    Vlachos K, Orphanoudakis T, Papaeftathiou Y, et al. Design and performance evaluation of a programmable packet processing engine (PPE) suitable for high-speed network processors units[J]. Microprocessors and Microsystems, 2007, 31(3): 188−199 doi: 10.1016/j.micpro.2006.09.001

    [15] 刘思远,任敏华,谷航平. 基于硬件多线程机制的网络处理器微引擎设计[J]. 微型电脑应用,2022,38(2):106−108

    Liu Siyuan, Ren Minhua, Gu Hangping. Design of network processor micro-engine based on hardware multi-threading mechanism[J]. Microcomputer Application, 2022, 38(2): 106−108(in Chinese)

    [16]

    Chole S, Fingerhut A, Ma Sha, et al. dRMT: Disaggregated programmable switching[C]//Proc of the 2017 Conf of the ACM Special Interest Group on Data Communication. New York: ACM. 2017: 1−14

    [17]

    Sundar N, Burres B, Li Yadong, et al. 9.4 An in-depth look at the Intel IPU E2000[C]//Proc of the 2023 IEEE Int Solid-State Circuits Conf (ISSCC). Piscataway, NJ: IEEE, 2023: 162−164

    [18]

    Netronome. NFP−4000 theory of operation[EB/OL]. 2018[2024-01-18]. https://d3ncevyc0dfnh8.cloudfront.net/media/documents/WP_NFP4000_TOO.pdf

    [19]

    Yazdinejad A, Parizi R M, Bohlooli A, et al. A high-performance framework for a network programmable packet processor using P4 and FPGA[J]. Journal of Network and Computer Applications, 2020, 156: 102564 doi: 10.1016/j.jnca.2020.102564

    [20] 李韬,杨惠,厉俊男 等. ChipletNP:基于芯粒的敏捷可定制网络处理器架构[J/OL]. 计算机研究与发展,2023[2024-01-18]. http://kns.cnki.net/kcms/detail/11.1777.TP.20231010.1044.002.html

    Li Tao, Yang Hui, Li Junnan, et al. ChipletNP: Chiplet-based agile customizable network processor architecture[J/OL]. Journal of Computer Research and Development, 2023[2024-01-18]. http://kns.cnki.net/kcms/detail/11.1777.TP.20231010.1044.002.html (in Chinese)

    [21]

    Ahmadi M, Wong S. A performance model for network processor architectures in packet processing system[C]//Proc of the 19th IASTED Int Conf on Parallel and Distributed Computing and Systems. Calgary, AB, Canada: ACTA Press, 2007: 176−181

    [22]

    Keslassy I, Kogan K, Scalosub G, et al. Providing performance guarantees in multipass network processors[J]. IEEE/ACM Transactions on Networking, 2012, 20(6): 1895−1909 doi: 10.1109/TNET.2012.2186979

    [23]

    Zolfaghari H, Mustafa H, Nurmi J. Run-to-completion versus pipelined: The case of 100 Gbps packet parsing[C/OL]//Proc of the 22nd Int Conf on High Performance Switching and Routing (HPSR). Piscataway, NJ: IEEE, 2021[2024-01-18]. https://ieeexplore.ieee.org/abstract/document/9481797

    [24]

    Varga A. OMNeT++[M]. Modeling and Tools for Network Simulation. Berlin: Springer, 2010: 35−59

    [25]

    Fan Chengze, Bi Jun, Zhou Yu, et al. NS4: A P4-driven network simulator[C]//Proc of the 2017 SIGCOMM Posters and Demos. New York: ACM, 2017: 105−107

    [26]

    Gao Kaihui, Chen Li, Li Dan, et al. Dons: Fast and affordable discrete event network simulation with automatic parallelization[C]//Proc of the ACM SIGCOMM 2023 Conf. New York: ACM, 2023: 167−181

    [27]

    Ahn J H, Li Sheng, Seongil O, et al. McSimA+: A manycore simulator with application-level+ simulation and detailed microarchitecture modeling[C]//Proc of the 2013 IEEE Int Symp on Performance Analysis of Systems and Software (ISPASS). Piscataway, NJ: IEEE, 2013: 74−85

    [28]

    Ren Pengju, Lis M, Cho M H, et al. Hornet: A cycle-level multicore simulator[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2012, 31(6): 890−903 doi: 10.1109/TCAD.2012.2184760

    [29]

    Qureshi Y M, Simon W A, Zapater M, et al. Gem5-x: A gem5-based system level simulation framework to optimize many-core platforms[C/OL]//Proc of the 2019 Spring Simulation Conf (SpringSim). Piscataway, NJ: IEEE, 2019[2024-01-18]. https://ieeexplore.ieee.org/abstract/document/8732862

    [30]

    Arashloo M T, Lavrov A, Ghobadi M, et al. Enabling programmable transport protocols in high-speed NICs[C]//Proc of the 17th USENIX Symp on Networked Systems Design and Implementation (NSDI 20). Berkeley, CA: USENIX Association, 2020: 93−109

    [31]

    Wagner J, Leupers R. A fast simulator and debugger for a network processor[C/OL]//Proc of Embedded Intelligence Conf. 2002[2024-03-21]. https://www.researchgate.net/publication/228724737_A_fast_simulator_and_debugger_for_a_network_processor

    [32]

    Koohi M, Bayadi H, Khaless M N. A simulation environment for network processor based on simultaneous multi thread architecture[J]. Indian Journal of Science and Technology, 2012, 5(10): 1−6

    [33]

    Bosshart P, Daly D, Gibb G, et al. P4: Programming protocol-independent packet processors[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(3): 87−95 doi: 10.1145/2656877.2656890

    [34]

    Li Hejing, Li Jialin, Kaufmann A. SimBricks: End-to-end network system evaluation with modular simulation[C]//Proc of the ACM SIGCOMM 2022 Conf. New York: ACM, 2022: 380−396

    [35]

    Netronome. Programmer studio 6.0[EB/OL]. 2016[2024-03-18]. https://d1agld16eywpip.cloudfront.net/media/documents/PB_Programmer_Studio_6.0_rURUo4Y.pdf

    [36]

    Diaz R, Behr J G. Discrete-event simulation[M]. Modeling and Simulation Fundamentals. Hoboken, NJ: John Wiley & Sons, 2010: 57−98

    [37]

    Shah N, Kurt K. Network processors: Origin of species[C]//Proc of the 17th Int Symp on Computer and Information Science (ISCIS XVII). Boca Raton, FL: CRC, 2002: 41−45

    [38]

    Sun Yifan, Baruah T, Mojumder S A, et al. MGPUSim: Enabling multi-GPU performance modeling and optimization[C]//Proc of the 46th Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2019: 197−209

    [39]

    Guo Xuan, Mullins R. Accelerate cycle-level full-system simulation of multi-core RISC-V systems with binary translation[J]. arXiv preprint, arXiv: 2005.11357, 2020

    [40]

    Liu Huan, Qiu Zhiliang, Pan Weitao, et al. HyperParser: A high-performance parser architecture for next generation programmable switch and SmartNIC[C]//Proc of the 5th Asia-Pacific Workshop on Networking (APNet 2021). New York: ACM, 2021: 50−56

图(14)  /  表(3)
计量
  • 文章访问数:  33
  • HTML全文浏览量:  32
  • PDF下载量:  16
  • 被引次数: 0
出版历程
  • 收稿日期:  2024-02-01
  • 修回日期:  2024-09-02
  • 录用日期:  2024-10-15
  • 网络出版日期:  2024-10-21

目录

/

返回文章
返回