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

SeChain: 基于国密算法的RISC-V安全启动机制设计与实现

芮志清, 梅瑶, 陈振哲, 吴敬征, 凌祥, 罗天悦, 武延军

芮志清, 梅瑶, 陈振哲, 吴敬征, 凌祥, 罗天悦, 武延军. SeChain: 基于国密算法的RISC-V安全启动机制设计与实现[J]. 计算机研究与发展, 2024, 61(6): 1458-1475. DOI: 10.7544/issn1000-1239.202440088
引用本文: 芮志清, 梅瑶, 陈振哲, 吴敬征, 凌祥, 罗天悦, 武延军. SeChain: 基于国密算法的RISC-V安全启动机制设计与实现[J]. 计算机研究与发展, 2024, 61(6): 1458-1475. DOI: 10.7544/issn1000-1239.202440088
Rui Zhiqing, Mei Yao, Chen Zhenzhe, Wu Jingzheng, Ling Xiang, Luo Tianyue, Wu Yanjun. SeChain: Design and Implementation of RISC-V Secure Boot Mechanism Based on Domestic Cryptographic Algorithms[J]. Journal of Computer Research and Development, 2024, 61(6): 1458-1475. DOI: 10.7544/issn1000-1239.202440088
Citation: Rui Zhiqing, Mei Yao, Chen Zhenzhe, Wu Jingzheng, Ling Xiang, Luo Tianyue, Wu Yanjun. SeChain: Design and Implementation of RISC-V Secure Boot Mechanism Based on Domestic Cryptographic Algorithms[J]. Journal of Computer Research and Development, 2024, 61(6): 1458-1475. DOI: 10.7544/issn1000-1239.202440088
芮志清, 梅瑶, 陈振哲, 吴敬征, 凌祥, 罗天悦, 武延军. SeChain: 基于国密算法的RISC-V安全启动机制设计与实现[J]. 计算机研究与发展, 2024, 61(6): 1458-1475. CSTR: 32373.14.issn1000-1239.202440088
引用本文: 芮志清, 梅瑶, 陈振哲, 吴敬征, 凌祥, 罗天悦, 武延军. SeChain: 基于国密算法的RISC-V安全启动机制设计与实现[J]. 计算机研究与发展, 2024, 61(6): 1458-1475. CSTR: 32373.14.issn1000-1239.202440088
Rui Zhiqing, Mei Yao, Chen Zhenzhe, Wu Jingzheng, Ling Xiang, Luo Tianyue, Wu Yanjun. SeChain: Design and Implementation of RISC-V Secure Boot Mechanism Based on Domestic Cryptographic Algorithms[J]. Journal of Computer Research and Development, 2024, 61(6): 1458-1475. CSTR: 32373.14.issn1000-1239.202440088
Citation: Rui Zhiqing, Mei Yao, Chen Zhenzhe, Wu Jingzheng, Ling Xiang, Luo Tianyue, Wu Yanjun. SeChain: Design and Implementation of RISC-V Secure Boot Mechanism Based on Domestic Cryptographic Algorithms[J]. Journal of Computer Research and Development, 2024, 61(6): 1458-1475. CSTR: 32373.14.issn1000-1239.202440088

SeChain: 基于国密算法的RISC-V安全启动机制设计与实现

基金项目: 中国科学院战略性先导科技专项资助(XDA0320401);本论文得到了源图重大基础设施的支持
详细信息
    作者简介:

    芮志清: 1997年生. 博士研究生. 主要研究方向为系统安全、物联网安全、软件供应链安全

    梅瑶: 2000年生. 硕士. 主要研究方向为信道编码、软件安全

    陈振哲: 1998年生. 博士研究生. 主要研究方向为物理不可克隆函数、网络安全

    吴敬征: 1982年生. 博士,研究员,博士生导师. CCF 高级会员. 主要研究方向为系统安全、漏洞挖掘、操作系统安全

    凌祥: 1992年生. 博士. CCF 会员. 主要研究方向为软件安全、人工智能安全

    罗天悦: 1990年生. 工程师. 主要研究方向为操作系统安全分析、代码漏洞挖掘、人工智能安全

    武延军: 1979年生. 博士,研究员,博士生导师. CCF 杰出会员. 主要研究方向为操作系统、机器学习系统软件、系统安全

    通讯作者:

    吴敬征(jingzheng08@iscas.ac.cn

  • 中图分类号: TP391

SeChain: Design and Implementation of RISC-V Secure Boot Mechanism Based on Domestic Cryptographic Algorithms

Funds: This work was supported by the Strategic Priority Research Program of the Chinese Academy of Sciences (XDA0320401) and the YuanTu Large Research Infrastructure.
More Information
    Author Bio:

    Rui Zhiqing: born in 1997. PhD candidate. His main research interests include system security. Internet of things security, and software supply chain security

    Mei Yao: born in 2000. Master. Her main research interests include channel codes and software security

    Chen Zhenzhe: born in 1998. PhD candidate. His main research interests include physical unclonable functions and network security

    Wu Jingzheng: born in 1982. PhD, professor, professor supervisor. Senior member of CCF. His main research interests include system security, vulnerability mining, and operating system security

    Ling Xiang: born in 1992. PhD. Member of CCF. His main research interests include software security and AI security

    Luo Tianyue: born in 1990. Engineer. His main research interests include operating system security analysis, code vulnerability mining, and AI security

    Wu Yanjun: born in 1979. PhD, professor, PhD supervisor. Distinguished member of CCF. His main research interests include operating systems, machine learning system software, and system security

  • 摘要:

    开源RISC-V指令集为我国建立自主可控物联网生态提供了重大机遇. 然而,物联网设备通常缺乏硬件加固措施,容易遭受物理级的固件篡改攻击,因此保障固件完整性以提高设备安全性至关重要. 为此,已有基于安全启动技术的初步探索,但仍存在3个问题:1)传统软件信任根难以保证物理级可靠性;2)主流硬件级安全启动技术被国际芯片厂商掌握,技术未公开且不支持国密算法,无法保证安全自主可控;3)已有基于RISC-V CPU的安全启动研究缺乏对上层固件的校验机制. 为解决上述3个问题,首次设计并实现基于国密SM9算法的RISC-V安全启动机制——SeChain. 具体而言:1)在RISC-V SoC内部增加了签名计算单元(signature calculation unit,SCU),实现密钥对生成与签名;2)增加了密钥验证单元(key verification unit,KVU),实现验证算法的片内执行及固件完整性验证;3)设计实现基于验证引导的多级安全启动机制,从不可篡改的硬件信任根出发,逐级完成引导程序的完整性校验. 基于上述设计,SeChain实现了信任根的不可篡改和安全可信,构造了一个可信的安全启动链,基于国密SM9算法为设备的安全启动和可信执行提供可靠保障. 为了验证SeChain的有效性、高效性和可靠性,基于VexRiscv CPU在FPGA 硬件平台完成了SeChain仿真验证实验. 实验结果表明,SeChain能够有效抵御各类固件篡改攻击,并能对抗信任根攻击,且平均额外时间开销不超过6.47 s. SeChain适用于资源受限的IoT设备,在满足安全可信启动的同时,能为国产RISC-V生态的安全自主可控提供有力保障.

    Abstract:

    The open-source RISC-V instruction set architecture (ISA) provides a significant opportunity for China to establish an independent and controllable IoT ecosystem. However, IoT devices often lack hardware protections and are vulnerable to physical-level firmware tampering attacks. Therefore, ensuring firmware integrity to improve device security is crucial. Previous researches have focused on secure boot techniques, but several challenges remain: 1) The traditional software-level trusted root can be physically tampered, making it difficult to ensure the reliability of the trusted root; 2) Mainstream hardware-level secure boot technology is controlled by international chip manufacturers, the specific implementation method is not publicly available, and does not support domestic cryptographic algorithms, making it impossible to ensure security independence and controllability for China; 3) Existing research on secure boot mechanisms based on RISC-V CPUs can verify the credibility of executable code but lacks a mechanism for verifying the integrity of upper-level firmware. To solve these challenges, we design and implement SeChain, a RISC-V secure boot mechanism based on the Chinese domestic cryptographic algorithm SM9. Specifically: 1) A signature calculation unit (SCU) is added inside the RISC-V SoC to generate key pairs and signatures; 2) A key verification unit (KVU) is added to perform on-chip execution of verification algorithms and firmware integrity verification; 3) A multi-level secure boot process based on verification boot is designed and implemented, starting from an immutable hardware trust root, completing the integrity verification of the next-stage boot program step by step, and achieving secure boot. Based on this design, SeChain realizes the security and trustworthiness of the trust root in the startup phase and constructs a trusted secure boot chain based on the domestic cryptographic algorithm SM9, providing reliable protection for device secure boot and trusted execution. To verify the effectiveness, efficiency, and security against trust root attacks of SeChain, we complete SeChain simulation verification experiments based on VexRiscv CPU on FPGA hardware platform. The experimental results show that SeChain can resist various firmware tampering attacks, as well as resist trust root attacks, which has an average additional time overhead of no more than 6.47 seconds. SeChain is suitable for resource constrained IoT devices, while meeting secure and trusted boot requirements, it can provide strong protection for domestic RISC-V ecosystem security independence and controllability.

  • 聚类旨在发现数据的内部聚类结构,将相似的样本划分为一类,现已有许多高效的聚类算法被提出,如原型聚类、密度聚类、层次聚类等. 聚类作为机器学习的核心技术之一,已在信息检索[1]、医学诊断[2]、社交网络分析[3]、图像分割[4]等多个领域中发挥着重要作用.

    聚类属于无监督学习,对大量无标签样本进行划分,特别是外观相似、语义不同的样本,是一项重要挑战. 经典聚类算法,如谱聚类[5]、k-means[6]等,由于特征提取能力缺陷导致特征区分性差的问题,已难以满足现有复杂场景上的任务.

    深度聚类方法依靠深度学习[7]强大的特征提取能力,并采用同步式训练策略来解决传统聚类算法的不足. DEC(deep embedding clustering)[8]采用1步策略优化特征学习和聚类分析来解决错误传播. DFCN(deep fusion clustering)[9]将自动编码器和图自动编码器学习的特征信息分别在属性和结构上融合来弥补单个的不足. 但是,文献[8-9]方法学习的特征区分性不强,难以取得优异的聚类性能.

    近些年,改进的对比学习技术[10]在下游任务上取得优异表现,不断缩近无监督与有监督间的差距,并显现出超越有监督学习的潜力. 大部分对比学习方法采用单一、简单的数据增强技术,如MOCO(momentum contrast)[11],SimCLR(simple framework for contrastive learning of visual representation)[12]等,本文称之为弱数据增强,将同一样本的不同数据增强视图视作正样本对、其他为负样本对,利用对比损失将正样本对拉近、负样本对远离,有效提高特征的区分度. 当对比学习和聚类任务结合时,以正负样本为纽带,特征模块和聚类模块呈现较强的相互促进、相互影响的关系. 然而,从特征对比和聚类分析的角度,现有的对比聚类分析仍存在一些不足:1)单一的弱数据增强在保留原始样本大部分特征信息的同时,增强后的视图继承了语义信息和非语义信息相融交织的特性且具有单一的视图模式(本文将聚类主体相关信息视作语义信息,其他无关信息视为非语义信息,如背景信息、噪声信息等),这种特性和视图模式阻碍模型对语义信息的学习能力;2)同一样本的不同数据增强视图组成正样本对,正样本对本质上具有等价的语义概念,降低特征对比的多样性和语义性,同时,这样的正样本对划分到同一类簇也让聚类分析缺乏语义性.

    为提升特征对比、聚类分析的多样性和语义性,从而改善模型的语义感知能力,本文提出了联合数据增强的语义对比聚类方法(semantic contrastive clustering with federated data augmentation,SCCFA),在采用弱数据增强方法的基础上,再引入一类差异化的数据增强方法,称为强数据增强(更大的旋转角度、更综合的属性抖动和CutOut),其增强后的样本称为强视图,弱数据增强生成的样本称为弱视图. 由于强数据增强对图片结构破坏性大,强视图丢失原始样本的许多特征信息,形成与弱视图不同的视图模式,利用2种视图模式的差异降低非语义信息的干扰,提升模型的语义信息学习能力. 此外,基于相邻样本属于同一类别的假设,借助k近邻(k-nearest neighbor, KNN)算法将同一类别的不同样本组成正样本对、其他为负样本对. 如图1所示,基于KNN图提供的类别信息确定锚点样本的邻居样本,锚点样本与邻居样本构建正样本对,其余样本组成负样本对,正样本对靠近用“吸引”表示,负样本对远离用“排斥”表示. 经过强和弱2种数据增强后,锚点样本和邻居样本分别拥有强和弱2种形态,并将两两形态用于对比学习而改善模型所学特征的一致性和语义性. 锚点样本强视图与邻居样本弱视图的对比(“强 vs 弱”)等价于锚点样本弱视图与邻居样本强视图的对比(“弱 vs 强”,其他视图间对比类似),两者是一类视图间的对比,本文将前者以参数形式融合到后者.

    图  1  联合数据增强技术示意图
    Figure  1.  Illustration of federated data augmentation technology

    在公开的6个挑战性数据集上的大量实验结果表明了SCCFA的有效性和优越性.

    综上,本文的主要贡献包括5个方面:

    1)提出了一种语义感知的对比聚类框架,利用联合数据增强技术和KNN算法,赋予特征对比和聚类分析语义性,改善模型的语义感知能力.

    2)采用差异化的强和弱2类数据增强方法,在改善特征多样性和泛化性的同时,利用视图模式差异降低非语义信息的干扰,提高模型对语义信息的学习能力.

    3)利用全局特征构造全局KNN图,将相同语义的不同样本组成正样本对,提升特征对比和聚类分析的多样性和语义性.

    4)在多个挑战性数据集上进行了大量实验,实验结果表明SCCFA在其中大部分数据集上都取得明显的性能提升.

    5)大量消融实验表明联合数据增强技术能够缓解非语义信息的干扰,改善模型对语义信息的学习能力;也表明类别信息能有效改善特征对比和聚类分析的多样性和语义性.

    传统的聚类算法能成熟地应用于简单的低维数据集,取得优异的聚类性能. 但这些算法由于特征提取能力缺陷,无法处理复杂的高维数据集. 深度聚类依靠深度学习强大的特征提取能力,在复杂数据集上不断拉大与传统聚类算法间的性能差距.DEC[8]通过特征嵌入空间的解码和编码进行表征学习. DCCM(deep comprehensive correlation mining)[13]利用多类特征间的相互关系来学习特征信息. 从训练策略划分,这些方法属于交替式训练模型,将特征学习和聚类分析分2步优化,交替式训练模型由于存在错误传播,只能学到次优解. 另一种训练策略称为同步式训练,将特征学习和聚类分析进行1步优化,由于解决了错误传播问题,聚类效果更好. 比如,IIC(invariant information clustering)[14]在概率分布矩阵上提取类别的互信息. PICA(partition confidence maximization)[15]提出划分不确定性指标(partition uncertainty index, PUI)来衡量解的全局语义性,以便找到语义最合理的一个类簇划分. 尽管文献[14-15]方法取得了不错的聚类效果,却忽略了特征学习与聚类分析间的关系. 本文利用正负样本对为桥梁,强化特征学习和聚类分析间相互促进、相互影响的关系,让学习的特征同时具备区分性和聚类友好性.

    对比学习作为一种自监督学习技术,近年来受到广泛关注,许多改进模型在下游任务上取得优异性能,表现出巨大的潜能.MOCO(momentum contrast)[11]将对比学习视作字典查询,以队列存储负样本,以动量编码器保持迭代前后负样本的稳定性. MOCO v2(improved baselines with momentum contrastive learning)[16]在MOCO的结构上添加一个多层感知机(multilayer perceptron,MLP),并将高斯模糊加入到原有数据增强方法中.SimCLR[12]简化网络结构,以big-batch形式增加负样本数量. 这些方法虽然能学习到区分性的特征,但如何与下游任务结合并取得理想性能仍充斥着巨大的挑战. 此外这些方法也存在2点不足:1)数据增强策略单一、简单,导致语义信息学习效率低;2)正负样本对构建策略缺乏语义概念,不利于聚类性能的进一步提升. 针对这2点不足,本文引入差异化的强和弱2类数据增强方法,利用联合数据增强技术降低非语义信息对模型学习语义信息的干扰. 此外借助KNN算法将同类的不同样本组成正样本对,完善正负样本对构建策略.

    数据增强是一种通过让有限的数据产生更多的等价数据来人工扩展数据集的技术. 在对比学习中,数据增强不仅可以生成正样本,也能改善对比学习在源领域与目标领域间的迁移能力[17].

    在传统对比学习方法中,弱数据增强除拥有数据增强的基本特性,如增加训练样本数量外,主要用于生成锚点样本的正样本. 为使网络尽可能学习到正样本对间的共有信息,弱数据增强方法应尽量保留锚点样本的特征信息,因此弱数据增强策略具备变换种类单一、变换力度小的特点,该策略一般由4种基本类型组成,分别是ColorJitter,ResizedCrop,HorizontalFlip,GaussianBlur.

    文献[18]通过实验表明在全监督或半监督学习中,变换力度大的数据增强方法能提升网络性能. 文献[19]通过对多种基本类型的数据增强方法随机组合,探索多种数据增强策略在自监督学习中对网络的影响. 受文献[19]的启发,本文采用相似的数据增强随机组合策略,称之为强数据增强策略. 强数据增强策略由14种基本类型组成,分别是Sharpness,Brightness,Rotate,TranslateX,TranslateY,Color,Solarize,Invert,Equalize,Contrast,Posterise,AutoContrast,ShearX,ShearY.强数据增强对样本的破坏程度高于弱数据增强,导致增强后的视图丢失原始样本的较多特征信息,产生与弱数据增强不同的视图模式. 为了与弱数据增强形成差异性以及限制强数据增强对样本的破坏程度,本文的强数据增强由5种基本类型的数据增强方法组成,共有C(14,5)种形态应用在数据集上. 强数据增强策略和弱数据增强策略对样本的影响可视化具体如图2所示. 强数据增强样本称为强视图,如图2(b);弱数据增强样本称为弱视图,如图2(c). 强视图和弱视图明显地体现出强数据增强和弱数据增强的特性. 另外从图2(b)中可以看到,某些随机组合的强数据增强对样本的特征破坏大,有些样本的内在结构甚至被完全破坏,如图2(b)右下角样本所示. 如果只存在强数据增强,网络无法从强视图模式中学习到样本间的相似性和差异性,导致网络无法收敛,但是强数据增强和弱数据增强的联合能达到预期目标,即利用强视图和弱视图间的模式差异作为监督信息,引导模型学习嵌入在强视图中的特征信息,提高网络的学习能力.

    图  2  强数据增强和弱数据增强的比较
    Figure  2.  The comparison of strong data augmentation and weak data augmentation

    SCCFA的网络结构如图3所示,输入样本由锚点样本和邻居样本组成. 联合数据增强器(union data augmentor,UDA)对样本进行强和弱2种数据的增强. 第1个MLP产生嵌入空间,用于特征学习;第2个MLP产生概率分布空间,用于聚类分析. 联合特征对比器(federated feature comparator,FFC)和联合类别对比器(federated category comparator,FCC)分别对应特征对比和类别对比.

    图  3  SCCFA的网络框架
    Figure  3.  The network framework of SCCFA

    假设小批次为n的锚点样本集合为X={xi},i{1,2,,n},邻居样本集合为Y={yij},i{1,2,,n},j{1,2,,k},其中yij表示锚点样本xi的第j个邻居样本,邻居样本借助KNN图确定,则输入样本集合为XY. 集合XY在UDA下进行强数据增强和弱数据增强,生成强视图XsYs和弱视图XwYw(其中s和w分别表示强和弱的含义)后输入卷积网络进行特征提取. 为便于表达,锚点样本集合和邻居样本集合的强视图、弱视图分别用Xa,a{s,w}Yb,b{s,w}表示. 特征矩阵生成后,FFC和FCC在KNN图的指导下分别进行特征学习和聚类分析,FFC和FCC这2个模块以正负样本对为纽带,彼此形成较强的相互促进、相辅相成的关系. KNN图的质量好坏直接影响网络性能的高低,因此在训练的过程中,利用迭代的全局特征库更新KNN图,使KNN图的质量随着迭代而改善.

    假设锚点样本和邻居样本的视图集合XaYb的特征空间分别是 {{{{\boldsymbol{F}}}}^a} \in {\mathbb{R}^{n \times m}},a \in \{ {\text{s,w}}\} {{{\tilde {\boldsymbol{F}}}}^b} \in {\mathbb{R}^{n \times m}}{\text{,}} b∈{s,w},m为卷积网络所提特征的维度,在MLP的非线性变换下, {{{{\boldsymbol{F}}}}^a} {{{\tilde {\boldsymbol{F}}}}^b} 对应的嵌入矩阵分别是 {{{{\boldsymbol{Z}}}}^a} \in {\mathbb{R}^{n \times d}} a \in \{ {\text{s,w}}\} {\tilde{{\boldsymbol{Z}}}}^{b}\in \mathbb{R}^{n\times d}\text{,} b \in \{ {\text{s,w}}\} d是特征维度m降维后的大小,那么 {{{{\boldsymbol{Z}}}}^a} {{{\tilde {\boldsymbol{Z}}}}^b} 的矩阵形式为

    {{\boldsymbol{Z}}}^{a}={\left(\begin{array}{c} {{\boldsymbol{z}}}_{1}^{a} \\ {{\boldsymbol{z}}}_{2}^{a} \\ \vdots \\ {{\boldsymbol{z}}}_{n}^{a} \end{array}\right)}_{ n\times d}和{\tilde{{\boldsymbol{Z}}}}^{b}={\left(\begin{array}{c} {\tilde{{\boldsymbol{z}}}}_{1}^{b} \\ {\tilde{{\boldsymbol{z}}}}_{2}^{b} \\ \vdots \\ {\tilde{{\boldsymbol{z}}}}_{n}^{b} \end{array}\right)}_{ n\times d} .

    本文采用余弦相似性度量特征间的相似程度,相似性函数为:

    sim(\boldsymbol{z}_i^a,\tilde{\boldsymbol{z}}_j^b)=\frac{\boldsymbol{z}_i^a\cdot\tilde{\boldsymbol{z}}_j^b}{ \left\| \boldsymbol{z}_i^a \right\| \times \left\| \tilde{\boldsymbol{z}}_j^b \right\| }\text{.} (1)

    为改善聚类准确率而对特征进行归一化[20],有 \left\| {{{{\boldsymbol{z}}}}_i^a} \right\| = 1 \left\| {{{\tilde {\boldsymbol{z}}}}_j^b} \right\| = 1 ,则式(1)转化为

    sim(\boldsymbol{z}_i^a,\tilde{\boldsymbol{z}}_j^b)=\boldsymbol{z}_i^a\cdot\tilde{\boldsymbol{z}}_j^b\text{.} (2)

    再引入温度超参 \tau ,相似性函数的最终形式为

    sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_j^b) = \frac{{{{{\boldsymbol{z}}}}_i^a \cdot {{\tilde {\boldsymbol{z}}}}_j^b}}{\tau } . (3)

    采用和GCC(graph contrastive clustering)[21]相似的损失函数形式,FFC的特征对比损失函数定义为:

    \mathcal{L}_{{\text{ins}}}^{a,b} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_r^b)}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_g^a)}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_t^b)}}} }}} \text{,} (4)

    其中 a,b \in \{ {\text{s,w}}\} R(i) 表示锚点样本 {x_i} 的邻居样本, G(i) 表示锚点样本 {x_i} 所在集合下的负样本, T(i) 表示邻居样本所在集合下的负样本. R(i) G(i) T(i) 的数学表达为:

    \left\{ {\begin{array}{*{20}{l}} {R(i) = \{ {y_{ij}}|j \in \{ 1,2, \cdots ,k\} \} {\text{,}}} \\ {G(i) = \{ {x_t}|t \ne i \wedge t \in \{ 1,2, \cdots ,n\} \} {\text{,}}} \\ {T(i) = \{ {y_{tj}}|t \ne i \wedge t \in \{ 1,2, \cdots ,n\} \wedge j \in \{ 1,2, \cdots ,k\} \} {\text{. }}} \end{array}} \right.

    那么锚点样本与邻居样本间“弱 vs 弱”的损失函数为

    \mathcal{L}_{{\text{ins}}}^{{\text{w,w}}} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_r^{\text{w}})}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_g^{\text{w}})}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_t^{\text{w}})}}} }}} \text{,} (5)

    同理,“弱 vs 强”和“强 vs 强”的损失分别为:

    \mathcal{L}_{{\text{ins}}}^{{\text{w,s}}} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_r^{\text{s}})}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_g^{\text{w}})}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_t^{\text{s}})}}} }}} \text{,} (6)
    \mathcal{L}_{{\text{ins}}}^{{\text{s,s}}} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{s}},{{\tilde {\boldsymbol{z}}}}_r^{\text{s}})}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{s}},{{\tilde {\boldsymbol{z}}}}_g^{\text{s}})}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{s}},{{\tilde {\boldsymbol{z}}}}_t^{\text{s}})}}} }}} . (7)

    因此,FFC的总的损失函数为

    {\mathcal{L}_{{\text{FFC}}}} = \mathcal{L}_{{\text{ins}}}^{{\text{w,w}}} + 2 \times \mathcal{L}_{{\text{ins}}}^{{\text{w,s}}} + \mathcal{L}_{{\text{ins}}}^{{\text{s,s}}} . (8)

    假设锚点样本和邻居样本的特征空间 {{{{\boldsymbol{F}}}}^a} {{{\tilde {\boldsymbol{F}}}}^b} 对应的概率分布矩阵分别是 {{{{\boldsymbol{P}}}}^a} \in {\mathbb{R}^{n \times c}},a \in \{ {\text{s,w}}\} {{{\tilde {\boldsymbol{P}}}}^b} \in {\mathbb{R}^{n \times c}}, b \in \{ {\text{s,w}}\} ,其中 c 是类别数量, {{{{\boldsymbol{P}}}}^a} {{{\tilde {\boldsymbol{P}}}}^b} 的矩阵表现形式为

    {{\boldsymbol{P}}}^{a}={\left(\begin{array}{c} {{\boldsymbol{p}}}_{1}^{a} \\ {{\boldsymbol{p}}}_{2}^{a} \\ \vdots \\ {{\boldsymbol{p}}}_{n}^{a} \end{array}\right)}_{ n\times c}和{\tilde{{\boldsymbol{P}}}}^{\text{b}}={\left(\begin{array}{c} {\tilde{{\boldsymbol{p}}}}_{1}^{b} \\ {\tilde{{\boldsymbol{p}}}}_{2}^{b} \\ \vdots \\ {\tilde{{\boldsymbol{p}}}}_{n}^{b} \end{array}\right)}_{ n\times c} .

    和CC[22]的思想相似,本文将标签信息视作一种特殊的特征信息,为便于计算,将 {{{{\boldsymbol{P}}}}^a} {{{\tilde {\boldsymbol{P}}}}^b} 转置,得到 {{{{\boldsymbol{Q}}}}^a} \in {{{\boldsymbol{R}}}^{c \times n}} {{{\tilde {\boldsymbol{Q}}}}^b} \in {\mathbb{R}^{c \times n}},a,b \in \{ {\text{s,w}}\}

    \boldsymbol{Q}^a=\left(\begin{array}{*{20}{c}}\boldsymbol{q}_1^a, & \boldsymbol{q}_2^a, & \cdots & ,\boldsymbol{q}_c^a\end{array}\right)_{c\times n}^{\text{T}}\text{,}
    \tilde{\boldsymbol{Q}}^b=\left(\begin{array}{*{20}{c}}\tilde{\boldsymbol{q}}_{1,}^b & \tilde{\boldsymbol{q}}_{2,}^b & \cdots & \tilde{,\boldsymbol{q}}_c^b\end{array}\right)_{c\times n}^{\text{T}}.

    FCC中类别对比损失函数定义为

    \mathcal{L}_{{\text{clus}}}^{a,b} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^a,{{\tilde {\boldsymbol{q}}}}_i^b)}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^a,{{\tilde {\boldsymbol{q}}}}_j^b)}}} }}} ,a,b \in \{ {\text{s,w}}\} . (9)

    和FFC的思路类似,样本间的“弱 vs 弱”“弱 vs 强”“强 vs 强”的类别对比损失分别依次为:

    \mathcal{L}_{{\text{clus}}}^{{\text{w,w}}} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_i^{\text{w}})}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_j^{\text{w}})}}} }}} \text{,} (10)
    \mathcal{L}_{{\text{clus}}}^{{\text{w,s}}} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_i^{\text{s}})}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_j^{\text{s}})}}} }}} \text{,} (11)
    \mathcal{L}_{{\text{clus}}}^{{\text{s,s}}} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{s}},{{\tilde {\boldsymbol{q}}}}_i^{\text{s}})}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{s}},{{\tilde {\boldsymbol{q}}}}_j^{\text{s}})}}} }}} . (12)

    因此,总的类别对比损失函数为

    {\mathcal{L}_{{\text{clus}}}} = \mathcal{L}_{{\text{clus}}}^{{\text{w,w}}} + \mathcal{L}_{{\text{clus}}}^{{\text{w,s}}} + \mathcal{L}_{{\text{clus}}}^{{\text{s,s}}} . (13)

    同时,为解决聚类分析中稳定性问题,即避免所有样本划分到同一类别这种极端情况,本文添加一个额外的聚类约束损失:

    {\mathcal{L}_{{\text{cc}}}} = {\text{ln }}c - H({{{\boldsymbol{I}}}}) \text{,} (14)

    其中 H( \cdot ) 为熵函数, {{{\boldsymbol{I}}}} 表示包含 c 个元素的分布. {{{\boldsymbol{I}}}} 中元素定义为:

    I_j=\frac{\sum\limits_{t=1}^nq_{\mathit{jt}}^{\text{w}}}{\sum\limits_{i=1}^c\sum\limits_{t=1}^nq_{it}^{\text{w}}}. (15)

    于是FCC的损失函数由类别对比损失和聚类约束损失2部分组成:

    {\mathcal{L}_{{\text{FCC}}}} = {\mathcal{L}_{{\text{clus}}}} + \lambda \times {\mathcal{L}_{{\text{cc}}}} \text{,} (16)

    其中 \lambda 为平衡超参.

    综合FFC和FCC,SCCFA的目标函数为

    \mathcal{L} = \alpha \times {\mathcal{L}_{{\text{FFC}}}} + {\mathcal{L}_{{\text{FCC}}}} \text{,} (17)

    其中 \alpha 为平衡超参.

    锚点样本的邻居样本准确率(正样本准确率)取决于KNN图的质量. 为创建一个质量较好的KNN图,设计前置任务用于特征学习. 第1阶段进行特征对比学习,同一样本的数据增强视图作为正样本对;第2阶段引入类别对比学习,构建KNN图并不断更新图结构.SCCFA的训练过程具体如算法1所示.

    算法1. SCCFA算法.

    输入:数据集 X ,最小批次 n ,第1阶段次数 t ,迭代次数epochs,类别数量 c ,特征对比中相似性度量的温度超参 {\tau _{{\text{ins}}}} ,类别对比中相似性度量的温度超参 {\tau _{{\text{clus}}}}

    输出:逼近最优解的对比聚类模型 {\varPhi } .

    /*训练阶段*/

    ① for epoch = 1 to epochs do

    ②  从数据集 X 中抽样 n 个随机样本 X'

    ③  if epoch < t /*第1阶段*/

    ④   X' 进行强和弱数据增强处理;

    ⑤   通过式(8)计算损失 {\mathcal{L}_{{\text{FFC}}}}

    ⑥    {\mathcal{L}_{{\text{FCC}}}} = 0

    ⑦  else /*第2阶段*/

    ⑧   if epoch = t

    ⑨    初始化KNN图;

    ⑩   end if

    ⑪  根据KNN,抽样 X' 的邻居样本 Y'

    ⑫  X' \cup Y' 进行强和弱数据增强;

    ⑬  通过式(8)计算损失值 {\mathcal{L}_{{\text{FFC}}}}

    ⑭  通过式(16)计算损失值 {\mathcal{L}_{{\text{FCC}}}}

    ⑮  end if

    ⑯  通过式(17)计算总体损失 \mathcal{L}

    ⑰  SGD算法最小化 \mathcal{L} 来更新网络参数 \theta

    ⑱  重新计算KNN图;

    ⑲ end for

    /*测试阶段*/

    ① for X' in X do

    ②   X' 进行数据增强得 X'' ;/*不同于训练

    阶段的数据增强方法*/

    ③  X'' 输入对比聚类模型 {\varPhi } ,计算软标签;

    ④ end for

    假设算法①第1阶段迭代次数为t1,第2阶段迭代次数为t2,数据集 X 和小批次 X' 大小分别为 N n ,数据集 X 划分为N/n批,近邻样本个数为 k ,类别数量为 c ,嵌入矩阵维度为d,且不考虑神经网络前向和反向传播的时间开销,以及忽略Faiss工具包构建KNN图的时间开销.

    1)第1阶段. 小批次 X' 在每次迭代下,数据增强的时间复杂度为 O(n) ,利用式(8)计算特征对比损失的时间复杂度为 O(d{n^2}) ,因为迭代次数为 {t_1} ,每次迭代有N/n批,所以第1阶段总的时间复杂度为 O({t_1}dnN) .

    2)第2阶段. 计算特征对比损失的总时间复杂度是 O({t_2}kdnN) ,通过式(16)计算类别对比损失的总时间复杂度为 O({t_2}{c^2}N) ,所以第2阶段总时间复杂度为 O({t_2}kdnN + {t_2}{c^2}N) .

    因此算法1的总时间复杂度为 O(({t_1} + k{t_2}) dnN + {t_2}{c^2}N) .

    为充分评估本文方法的有效性和先进性,在6个广泛使用的基准数据集上进行实验以验证本文方法的聚类性能. 表1列出了这些数据集的统计信息.

    表  1  数据集统计
    Table  1.  Statistics of Datasets
    数据集 图片数量 图片尺寸 类别个数
    CIFAR-10 6万 3×32×32 10
    CIFAR-100 6万 3×32×32 20
    STL-10 1.3万 3×96×96 10
    ImageNet-10 1.3万 3×96×96 10
    ImageNet-Dogs 1.95万 3×96×96 15
    Tiny-ImageNet 11万 3×64×64 200
    下载: 导出CSV 
    | 显示表格

    1)CIFAR-10[23]是一个由10个类别的共6万张32×32彩色图片组成的数据集,每类有0.6万张图片.

    2)CIFAR-100[23]包含100个类别,可归纳为20个超类,每类别含600张图片,其中500张用于训练,100张用于测试. 本文将这20个超类作为该数据集的标签信息.

    3)STL-10[24]是一个数量为1.3万的数据集,包含额外10万张无标签信息的图片,挑战性更大. 本文将无标签信息的图片舍弃,只选择有标签信息的1.3万张图片用于网络训练.

    4)ImageNet-10[25]是从ImageNet[26]中挑选10个类别的图片组成的数据集,共包含1.3万张图片.

    5)ImageNet-Dogs[25]与ImageNet-10同出于ImageNet,共1.95万张图片.

    6)Tiny-ImageNet[27]有200个类别,共12万张图片,其中含有10万张训练图片、1万张验证图片以及1万张测试图片,由于测试图片无标签信息被舍弃,只有11万张图片用于本文方法的训练和测试.

    从公平性和全面性的角度出发,本文采用广泛使用的聚类有效性指标:ACC(accuracy),NMI(normalized mutual information),ARI(adjusted rand index)评价本文方法在6个数据集上的性能.

    1)ACC指模型预测的准确率,用于衡量预测标签与真实标签之间一对一关系的正确程度,计算式为:

    ACC(Y,\hat Y) = \frac{1}{n}\sum\limits_{i = 1}^n {\delta ({y_i},{{\hat y}_i})} \text{,} (18)

    其中 Y 表示真实标签, \hat Y 是预测标签, \delta ( \cdot ) 是指示函数,当 {y_i} = {\hat y_i} 时, \delta ( \cdot ) = 1 ,否则 \delta ( \cdot ) = 0 .

    2)NMI用于度量预测标签与真实标签之间的相近程度. 给定数据集 X ,假设真实标签为 Y ,预测标签为 \hat Y NMI的计算式为

    NMI(Y,\hat Y) = \frac{{2 \times MI(Y,\hat Y)}}{{H(Y) + H(\hat Y)}} \text{,} (19)

    其中 H( \cdot ) 表示熵函数, H(Y) H(\hat Y) 的定义为:

    H(Y) = - \sum\limits_{i = 1}^{\left| Y \right|} {P(i) \times {\text{lb (}}P(i))} \text{,} (20)
    H(\hat Y) = - \sum\limits_{j = 1}^{\left| {\hat Y} \right|} {P(j) \times {\text{lb }}(P(j))} \text{,} (21)

    其中P(·)表示联合概率,此外,式(19)中的 MI( \cdot ) 指预测值与真实值间的互信息,定义为

    MI(Y,\hat Y) = \sum\limits_{i = 1}^{\left| Y \right|} {\sum\limits_{j = 1}^{\left| {\hat Y} \right|} {P(i,j) \times {\text{lb }}\left( {\frac{{P(i,j)}}{{P(i) \times P(j)}}} \right)} } . (22)

    3)ARI为调整兰德指数,用于评价预测标签与真实标签间的匹配程度,定义为

    ARI = \frac{{RI - E(RI)}}{{{\text{max}}(RI) - E(RI)}} \text{,} (23)
    RI=\sum\limits_{ij}^{ }C_{n_{ij}}^2, (24)

    其中,E(·)表示期望.

    本文方法采用Python语言和Pytorch框架实现,在Nvidia Geforce RTX 3090 24 GB服务器上运行.

    将残差网络ResNet-18用于特征提取,特征学习和聚类分析MLP的深度分别是2层和1层. 此外,模型采用SGD优化算法,其学习率、权值衰减以及动量系数分别为0.4,1E−4,0.9.考虑收敛的稳定性,学习率以0.1的衰减率进行余弦衰减. 模型的超参共有特征对比中相似性度量的温度超参 {\tau _{{\text{ins}}}} 、类别对比中相似性度量的温度超参 {\tau _{{\text{clus}}}} 以及平衡超参 \alpha \lambda ,它们的初始值分别为0.1,1.0,2.0,3.0.开源库Faiss计算6个数据集的KNN图(k=5),鉴于Faiss高效的特性,KNN图的计算开销可以忽略不计. 由于数据集的图片尺寸、学习难度等各有差异,再加上物理限制,第1阶段次数t、小批次n根据数据集的实际情况而定. 最后,所有数据集上的训练次数为800.

    在相同的6个数据集上,本文方法分别从ACCNMIARI这3个方面与其他17个聚类方法进行对比,实验结果记录在表2~4中. 其他方法数据来源于GCC[21].

    表  2  不同方法在6个数据集上的ACC比较
    Table  2.  ACC Comparison of Different Methods on Six Datasets
    方法 CIFAR-10 CIFAR-100 STL-10 ImageNet-10 ImageNet-Dogs Tiny-ImageNet
    k-means[6] 0.229 0.130 0.192 0.241 0.105 0.025
    SC[5] 0.247 0.136 0.159 0.274 0.111 0.022
    AC[28] 0.228 0.138 0.332 0.242 0.139 0.027
    NMF[29] 0.190 0.118 0.180 0.230 0.118 0.029
    AE[30] 0.314 0.165 0.303 0.317 0.185 0.041
    DAE[31] 0.297 0.151 0.302 0.304 0.190 0.039
    GAN[32] 0.315 0.151 0.298 0.346 0.174 0.041
    DeCNN[33] 0.282 0.133 0.299 0.313 0.175 0.035
    VAE[34] 0.291 0.152 0.282 0.334 0.179 0.036
    JULE[35] 0.272 0.137 0.277 0.300 0.138 0.033
    DEC[8] 0.301 0.185 0.359 0.381 0.195 0.037
    DAC[25] 0.522 0.238 0.470 0.527 0.275 0.066
    DCCM[13] 0.623 0.327 0.482 0.710 0.383 0.108
    IIC[14] 0.617 0.257 0.610
    PICA[15] 0.696 0.337 0.713 0.870 0.352 0.098
    CC[22] 0.766 0.426 0.747 0.895 0.342 0.140
    GCC[21] 0.856 0.472 0.788 0.901 0.526 0.138
    SCCFA(本文) 0.882 0.506 0.802 0.963 0.543 0.132
    注:最好的结果用粗体数字标注.
    下载: 导出CSV 
    | 显示表格
    表  3  不同方法在6个数据集上的NMI比较
    Table  3.  NMI Comparison of Different Methods on Six Datasets
    方法 CIFAR-10 CIFAR-100 STL-10 ImageNet-10 ImageNet-Dogs Tiny-ImageNet
    k-means[6] 0.087 0.084 0.125 0.119 0.055 0.065
    SC[5] 0.103 0.090 0.098 0.151 0.038 0.063
    AC[28] 0.105 0.098 0.239 0.138 0.037 0.069
    NMF[29] 0.081 0.079 0.096 0.132 0.044 0.072
    AE[30] 0.239 0.100 0.250 0.210 0.104 0.131
    DAE[31] 0.251 0.111 0.224 0.206 0.104 0.127
    GAN[32] 0.265 0.120 0.210 0.225 0.121 0.135
    DeCNN[33] 0.240 0.092 0.227 0.186 0.098 0.111
    VAE[34] 0.245 0.108 0.200 0.193 0.107 0.113
    JULE[35] 0.192 0.103 0.182 0.175 0.054 0.102
    DEC[8] 0.257 0.136 0.276 0.282 0.122 0.115
    DAC[25] 0.396 0.185 0.366 0.394 0.219 0.190
    DCCM[13] 0.496 0.285 0.376 0.608 0.321 0.224
    PICA[15] 0.591 0.310 0.611 0.802 0.352 0.277
    CC[22] 0.681 0.424 0.674 0.862 0.401 0.340
    GCC[21] 0.764 0.472 0.684 0.842 0.490 0.347
    SCCFA(本文) 0.808 0.511 0.733 0.910 0.525 0.343
    注:最好的结果用粗体数字标注.
    下载: 导出CSV 
    | 显示表格
    表  4  不同方法在6个数据集上的ARI比较
    Table  4.  ARI Comparison of Different Methods on Six Datasets
    方法 CIFAR-10 CIFAR-100 STL-10 ImageNet-10 ImageNet-Dogs Tiny-ImageNet
    k-means[6] 0.049 0.028 0.061 0.057 0.020 0.005
    SC[5] 0.085 0.022 0.048 0.076 0.013 0.004
    AC[28] 0.065 0.034 0.140 0.067 0.021 0.005
    NMF[29] 0.034 0.026 0.046 0.065 0.016 0.005
    AE[30] 0.169 0.048 0.161 0.152 0.073 0.007
    DAE[31] 0.163 0.046 0.152 0.138 0.078 0.007
    GAN[32] 0.176 0.045 0.139 0.157 0.078 0.007
    DeCNN[33] 0.174 0.038 0.162 0.142 0.073 0.006
    VAE[34] 0.167 0.040 0.146 0.168 0.079 0.006
    JULE[35] 0.138 0.033 0.164 0.138 0.028 0.006
    DEC[8] 0.161 0.050 0.186 0.203 0.079 0.007
    DAC[25] 0.306 0.088 0.257 0.302 0.111 0.017
    DCCM[13] 0.408 0.173 0.262 0.555 0.182 0.038
    PICA[15] 0.512 0.171 0.531 0.761 0.201 0.040
    CC[22] 0.606 0.282 0.606 0.825 0.225 0.071
    GCC[21] 0.728 0.305 0.631 0.822 0.362 0.075
    SCCFA(本文) 0.777 0.347 0.680 0.920 0.368 0.062
    注:最好的结果用粗体数字标注.
    下载: 导出CSV 
    | 显示表格

    综合表2~4可知,传统聚类算法在高维数据集上的性能远低于深度聚类方法. 此外,基于互信息的方法比基于重构的方法取得了更优的聚类性能,比如IIC[14]和AE(autoencoder)[30]. 对比聚类方法学习到强区分性的特征,并通过正负样本强化了特征学习和聚类分析间相互促进的关系,进一步提升了聚类效果,如CC[22]比IIC有接近10%的提升. 同时,GCC与CC的对比说明对比学习应用在下游任务时,样本对构建策略应与下游任务实际结合. 更重要的是,相较于已有的对比聚类方法,如PICA[15],GCC,SCCFA在除了Tiny-ImageNet数据集外的其他5个基准数据集上都取得了明显的性能提升,在ImageNet-10数据集上ACCARI的提升分别有6个百分点和10个百分点,且所有数据集上的训练次数缩减了20个百分点. 由此可见,联合数据增强技术和KNN算法有效提升了模型的学习能力和学习效率. 在Tiny-ImageNet数据集上只取得次优结果的可能原因有:

    1)Tiny-ImageNet数据集有200个类别,相对其他数据集拥有更多的语义类别,此时,假负样本对模型性能的影响更大[36],干扰模型学习不同类簇之间的差异性,然而本文方法未对假负样本作进一步处理.

    2)Tiny-ImageNet数据集的正样本对准确率相对其他数据集较低,说明假正样本较多,假正样本会干扰模型对同类样本间一致性的学习.

    图  8  4个数据集的聚类准确率和正样本对准确率的变化过程
    Figure  8.  Variance process of clustering accuracy and positive pairs accuracy on four datasets

    关于联合数据增强的消融实验结果如表5所示. “弱 vs 弱”实验作为对照实验,用以说明弱数据增强尽管保留了原始样本的大部分特征信息,但也继承了语义信息与非语义信息消融交织的特性,在单一的视图模式下,该特性阻碍了模型对语义信息的学习. 从“弱 vs 强”实验可知,由于强数据增强对样本破坏大,生成与弱数据增强不同的视图模式,利用2类差异性的视图模式间的对比缓解“弱 vs 弱”存在的不足. “强vs 强”实验说明在单一的强视图模式下,对比学习范式无法从破坏严重的样本中学习到有效的共有信息. 最后,“弱/强 vs 强/弱”实验是本文方法采用的联合数据增强策略,可以有效解决单个实验的不足,既利用“弱 vs 强”解决“弱vs 弱”中语义学习能力不足的问题,又利用“弱 vs 弱”缓解“弱vs 强”中非语义信息考虑不足的问题,改善模型的泛化性. “强 vs 强”的引入是为了和“弱 vs 弱”“弱 vs 强”相互配合,在保持模型能继续学习的前提下,从多种视图模式对比中捕获更多的语义信息,改善特征一致性.

    表  5  强数据增强和弱数据增强间的不同联合
    Table  5.  Different Combinations Between Strong Data Augmentation and Weak Data Augmentation
    策略 符号表示 ACC NMI ARI
    弱 vs 弱 (w,w) 0.841 0.743 0.704
    弱 vs 强 (w,s) 0.855 0.766 0.733
    强 vs 强 (s,s)
    弱/强 vs 强/弱 (w,w)+(w,s)+(s,s) 0.882 0.808 0.777
    注:最好的结果用粗体数字标注;“vs”的2个对象表示数据增强的类型;“−”表示模型无法学习,聚类失败.
    下载: 导出CSV 
    | 显示表格

    围绕类别信息展开的消融实验结果如表6所示. 第1行实验在特征学习和聚类分析2个模块上都没有引入类别信息,代表传统的正样本对构建策略,即将同一样本的不同数据增强视图作为正样本对. FFC没有引入类别信息时,仅学习语义等价的样本对间的共有信息. FCC没有引入类别信息时,仅具有将同一样本的不同数据增强视图划分为一类的能力. 当FFC和FCC都引入类别信息时,即在2个模块上将同一类的不同样本作为正样本对. 从ACC数据可以看出,这明显改善了模型的语义感知能力,同时,ACC的增长幅度反映了FFC和FCC间相互促进、相辅相成的关系.

    表  6  全局类别信息的影响
    Table  6.  Effect of the Global Category Information
    FFC FCC ACC NMI ARI
    0.852 0.768 0.726
    0.863 0.785 0.744
    0.861 0.777 0.735
    0.882 0.808 0.777
    注:最好的结果用粗体数字标注;“√”表示引入类别信息,“−”表示没有引入类别信息.
    下载: 导出CSV 
    | 显示表格

    为了知晓本文方法在不同类别图像上的预测能力,本文引入聚类结果的混淆矩阵,也通过具体的案例以更加直观的方式分析本文方法在各个类别上的不足. 图4是CIFAR-10数据集、ImageNet-10数据集以及STL-10数据集上聚类结果的混淆矩阵,横坐标和纵坐标分别表示预测类别和真实类别,矩阵元素数字表示预测准确度. 图5是关于CIFAR-10数据集和ImageNet-10数据集上的正样本对案例图,其中“真正样本”表示与锚点样本同类的样本,“假正样本”表示与锚点样本异类的样本. 本文方法借助全局KNN图实现正样本配对,在标签信息缺失的情况下,正样本配对存在一定误差,而正样本对准确与否严重影响本文方法聚类性能的好坏. 综合图4图5可知,在CIFAR-10数据集上,狗的预测准确率较低,而本文方法错误地将猫视作其邻居样本. 另外,本文方法在STL-10数据集上的差异性较大,猫的准确率只有37%,而飞机的准确率高达96%,两者间相差59个百分点. 最后,在ImageNet-10数据集上,尽管差异性不大,却错误地将轮船当作飞机的邻居样本、将企鹅作为足球的邻居样本. 从ImageNet-10数据集可见,本文方法利用联合数据增强技术尽管缓解了非语义信息的干扰,改善模型对语义信息的感知,仍无法避免将语义信息占比少且非语义信息极其相似的样本划分为一类的现象,这也是聚类任务中普遍存在的一个问题. 另外,从CIFAR-10和STL-10数据集中猫和狗2个类别的数据可见,仅从特征相似性匹配正样本可能导致将特征相似、语义不同的2个样本错误匹配,这在一定程度上限制了本文方法的性能.

    图  4  3个数据集的混淆矩阵
    Figure  4.  Confusion matrices of three datasets
    图  5  在2个数据集上的正样本对案例分析
    Figure  5.  Case analysis of positive pairs on two datasets

    为了了解本文方法的特征提取和聚类分析在训练过程中的演变过程,本文在CIFAR-10数据集上借助t-SNE[37]实现特征可视化,具体为随机从每个类别中选择500个样本,用颜色或数字表示类别信息及其对应的特征,详见图6. 从图6可见,类别1~9中每个类别的类内紧凑度以及类间的区分度在训练过程中不断改善. 具体而言,类簇2,3,5在所有类簇中最难以清楚划分. 从图6(d)可知,在训练结束时,类簇3,5的类内紧凑度很好,并且类簇2,3,5之间的区分性也很明显,说明本文方法能有效处理高维的数据集.

    图  6  迭代过程中在CIFAR-10数据集上实例特征和聚类分析的演变
    Figure  6.  The evolution of instance features and clustering analysis on CIFAR-10 dataset during iteration process

    为了分析本文方法结构的合理性,进行了收敛性分析. 在4个数据集上的损失值收敛过程如图7所示,其与图8相对应. 图8展示了这4个数据集上聚类准确率和正样本对准确率的变化过程. 在标签信息缺失情况下,由于借助KNN图寻找正样本存在一定偏误,本文用正样本对准确率描述该偏误,正样本对准确率是top-5准确率,即锚点样本的前5个伪正样本中真实正样本所占的比例. 从图7图8可知,损失值在所有数据集上有效、平稳地收敛,聚类准确率和正样本对准确率有效地上升;此外,整体损失值、聚类准确率和正样本对准确率三者间具有相互影响的关系. 以上分析说明本文方法的结构设计合理,训练稳定;也说明了正样本对的准确率在语义对比学习框架中起着重要的作用.

    图  7  4个数据集的损失收敛过程
    Figure  7.  Loss convergence process of four datasets

    本文提出了一种新颖的语义对比聚类方法,即联合数据增强的语义对比聚类(SCCFA). 与已有的方法相比,本文方法在全局KNN图的指导下,基于近邻样本属于同类样本的假设,寻找锚点样本的top-k近邻样本作为其正样本,改善了特征对比和类别对比的多样性和语义性. 另外,本文采用差异化的强和弱2类数据增强方法,在提升特征的多样性和泛化性的同时,借助强数据增强和弱数据增强生成的模式差异缓解非语义信息对模型的干扰,提升模型对语义信息的学习效率和学习能力. 最后,在6个基准数据集上与已有的多个聚类方法进行性能对比,证明了本文方法的有效性和先进性.

    聚类作为计算机视觉研究中的关键技术,本文所提方法尽管解决了对比聚类中的多个不足,但基于KNN图寻找正样本仍存在一些误差,未来将在这方面进行更深入的研究.

    作者贡献声明:王气洪负责算法模型的提出和实现、实验结果的整理与分析、论文的撰写和修改;贾洪杰提出研究方向,把握论文的创新性并指导和参与论文的修订;黄龙霞和毛启容讨论算法的改进,设计实验方案,并指导论文修改.

    MSI leak: tips for users, organizations, and developers. https://www.kaspersky.com/blog/msi-firmware-keys-leak/48300/
  • 图  1   安全启动信任链示意图

    Figure  1.   The illustration of trust chain during secure boot

    图  2   SeChain上SoC结构

    Figure  2.   The SoC structure of SeChain

    图  3   SM9算法签名过程

    Figure  3.   The signature process of SM9 algorithm

    图  4   SM9算法验证签名过程

    Figure  4.   The verification signature process of SM9 algorithm

    图  5   SeChain中的签名生成流程

    Figure  5.   The signature generation process in SeChain

    图  6   SeChain中的签名验证流程

    Figure  6.   The signature verification process in SeChain

    图  7   SeChain硬件开销图

    Figure  7.   Hardware overhead diagram of SeChain

    图  8   启动时间增长图对比

    Figure  8.   Comparison of starting time growth diagram

    表  1   基于SM9算法的SeChain安全启动验证实验结果

    Table  1   Experimental Results of SeChain Secure Boot Verification Based on SM9 Algorithm

    攻击位置攻击方式攻击检测结果攻击阻断时间/s无攻击时验证成功时间/s
    boot.c修改调用boot helper函数时传入的地址验证失败,无法启动3.13.9
    将boot helper传入地址硬编码为0x00000验证失败,无法启动3.23.9
    修改boot helper中所有地址为固定值验证失败,无法启动3.24.0
    修改seiral boot 启动时的printf函数验证失败,无法启动4.13.8
    在任意位置插入新的printf调用验证失败,无法启动4.43.9
    删除serial boot的printf函数验证失败,无法启动2.93.7
    main.c修改头部关于litex logo的printf语句验证失败,无法启动3.03.8
    大面积删除不影响编译完整性的printf验证失败,无法启动3.33.9
    修改调用readline函数时传入的参数验证失败,无法启动3.34.0
    删除对readline函数的调用验证失败,无法启动3.83.8
    删除除serial boot外的boot方式验证失败,无法启动3.63.9
    删除将是否进入console的判断语句验证失败,无法启动3.03.7
    删除boot_sequence函数的调用验证失败,无法启动3.83.8
    readline.c修改输入对照哈希表验证失败,无法启动4.33.9
    修改readline中对command的处理方式验证失败,无法启动3.53.9
    增加一个新的command处理结果验证失败,无法启动3.93.8
    cmd_bios.c任意位置增加一行for空循环语句验证失败,无法启动4.23.9
    添加printf函数调用, 打印某不被支持的cmd验证失败,无法启动3.33.7
    删除所有printf函数使无法展示可用cmd验证失败,无法启动2.93.8
    删除获得help cmd后的printf函数验证失败,无法启动3.63.9
    下载: 导出CSV

    表  2   信任根攻击实验结果

    Table  2   Experimental Results of Trust Root Attack

    攻击实验 信任链 信任根位置 攻击方式 攻击检测结果 平均时间/s
    4a 篡改boot.c中的printf函数 无验证,攻击成功 3.3
    4b 软件 闪存 攻击者窃取设备ID,篡改boot.c中的printf函数,使用攻击者
    私钥伪造签名,并修改闪存中的公钥为对应的攻击者公钥
    验证通过,设备启动异常,攻击成功 7.3
    4c 硬件 写入ROM 攻击者窃取设备ID,篡改boot.c中的printf函数,使用攻击者
    私钥伪造签名,并修改闪存中的公钥为对应的攻击者公钥
    验证失败,停止启动,攻击失败 4.3
    4d 硬件 写入ROM 攻击者预先知晓用户私钥与系统参数,篡改boot.c中的printf
    函数后,使用用户私钥伪造签名
    验证通过,设备启动异常,攻击成功 6.8
    下载: 导出CSV
  • [1]

    GSMA. The Mobile Economy [R/OL]. London: GSMA Head Office. 2023 [2023-09-30]. https://www.gsma.com/solutions-and-impact/connectivity-for-good/mobile-economy/wp-content/uploads/2023/03/270223-The-Mobile-Economy-2023.pdf

    [2] 何小庆. RISC-V处理器嵌入式开发概述[J]. 单片机与嵌入式系统应用,2020,20(11):1−6

    He Xiaoqing. RISC-V processor embedded development overview[J]. Microcontrollers & Embedded Systems, 2020, 20(11): 1−6 (in Chinese)

    [3]

    T-Head. T-Head Semiconductor Co. , Ltd[EB/OL]. 2023[2023-08-31]. https://github.com/T-head-Semi.html

    [4]

    EulixOS. EulixOS[EB/OL]. (2022-12-28) [2023-09-15]. https://eulixos.com

    [5]

    OWASP Foundation. OWASP Internet of things[EB/OL]. 2023[2023-08-11]. https://owasp.org/www-project-internet-of-things/

    [6] 杨宏,王晓春,林冠辰,等. 可信物联网技术与标准化研究[J]. 信息技术与标准化,2023,65(5):10−15, 20

    Yang Hong, Wang Xiaochun, Lin Guanchen, et al. Research on trusted Internet of things technology and standardization[J]. Information Technology & Standardization, 2023, 65(5): 10−15, 20 (in Chinese)

    [7] 赵波,费永康,向騻,等. 嵌入式系统的安全启动机制研究与实现[J]. 计算机工程与应用,2014,50(10):72−77

    Zhao Bo, Fei Yongkang, Xiang Shuang, et al. Research and implementation of secure boot mechanism for embedded systems[J]. Computer Engineering and Applications, 2014, 50(10): 72−77 (in Chinese)

    [8] 马洪峰. 基于硬件信任根的物联网设备安全启动设计[J]. 单片机与嵌入式系统应用,2021,21(10):16−17, 21

    Ma Hongfeng. Secure boot design of IoT devices based on hardware root of trust[J]. Microcontrollers & Embedded Systems, 2021, 21(10): 16−17, 21 (in Chinese)

    [9]

    UEFI Forum, inc. Unified extensible firmware interface specification[EB/OL]. (2022-08-29)[2023-08-10]. https://uefi.org/sites/default/files/resources/UEFI_Spec_2_10_Aug29.pdf

    [10]

    Naked Security. Serious Security: TPM 2.0 vulns–is your super-secure data at risk[EB/OL]. (2023-03-07)[2023-9-10]. https://nakedsecurity.sophos.com/2023/03/07/serious-security-tpm-2-0-vulns-is-your-super-secure-data-at-risk

    [11]

    Intel. Intel Hardware Shield Below-the-OS Security: Information technology cybersecurity white paper[EB/OL]. 2022[2023-04-15]. https://www.intel.com/content/dam/www/central-libraries/us/en/documents/below-the-os-security-white-paper.pdf

    [12]

    Jawad H Y, Wong M M, Pudi V, et al. Lightweight secure-boot architecture for RISC-V system-on-chip[C]//Proc of the 20th Int Symp on Quality Electronic Design (ISQED). Piscataway, NJ: IEEE, 2019: 216−223

    [13]

    SpinalHDL. VexRiscv[EB/OL]. (2021-11-16)[2024-03-15]. https://github.com/SpinalHDL/VexRiscv

    [14]

    Rui Zhiqing, Mei Yao. SeChain[EB/OL]. (2024-03-10)[2024-03-15]. https://github.com/m2kar/SeChain

    [15] 陈士伟. 杂凑函数的攻击方法研究[D]. 郑州:解放军信息工程大学,2012

    Chen Shiwei. Research on the attack methods of the Hash functions[D]. Zhengzhou: Information Engineering University of the People’s Liberation Army, 2012

    [16]

    Rivest R. The MD5 message-digest algorithm: RFC1321[R/OL]. 1992[2024-03-15]. https://www.rfc-editor.org/info/rfc1321

    [17]

    Stevens M, Bursztein E, Karpman P, et al. The first collision for full SHA-1[C]//Proc of the 37th Annual Int Cryptology Conf. Berlin: Springer, 2017: 570−596

    [18]

    Dworkin M J. SHA-3 standard: Permutation-based Hash and extendable-output functions: NIST FIPS 202[R/OL]. Gaithersburg, Maryland: National Institute of Standardsand Technology, 2015[2024-03-15]. https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf

    [19] 王小云,于红波. SM3密码杂凑算法[J]. 信息安全研究,2016,2(11):983−994

    Wang Xiaoyun, Yu Hongbo. SM3 cryptographic Hash algorithm[J]. Journal of Information Security Research, 2016, 2(11): 983−994 (in Chinese)

    [20]

    Wang Xiaoyun, Yin Y L, Yu Hongbo. Finding collisions in the full SHA-1[C] //Proc of the 25th Annual Int Cryptology Conf. Berlin: Springer, 2005: 17−36

    [21]

    Wang Xiaoyun, Yu Hongbo. How to break MD5 and other Hash functions[C]//Proc of Annual Int conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2005: 19−35

    [22]

    Wikipedia. Public-key cryptography[EB/OL]. (2024-02-22)[2024-03-15]. https://en.wikipedia.org/w/index.php?title=Public-key_cryptography&oldid=1209561246#Algorithms

    [23]

    Diffie W, Hellman M E. New directions in cryptography[J]. IEEE Transactions on Information Theory, 1976, 22(6): 644−654 doi: 10.1109/TIT.1976.1055638

    [24] 沈昌祥,张焕国,冯登国,等. 信息安全综述[J]. 中国科学:信息科学,2007,37(2):129−150

    Shen Changxiang, Zhang Huanguo, Feng Dengguo, et al. Summary of information security[J]. SCIENTIA SINICA Informationis, 2007, 37(2): 129−150 (in Chinese)

    [25]

    Hales T C. The NSA back door to NIST[J]. Notices of the American Mathematical Society, 2013, 61(2): 190−192

    [26]

    Schwennesen B, Bray H. Elliptic curve cryptography and government backdoors[EB/OL]. (2016-04-24)[2024-03-15]. https://blkcipher.pl/assets/pdfs/BAS_Paper3_EllipticCurveCryptography.pdf

    [27] 董一潇,全建斌,王明儒,等. 国密SM9算法在物联网安全领域的应用研究[J]. 电信工程技术与标准化,2022,35(9):22−27, 32

    Dong Yixiao, Quan Jianbin, Wang Mingru, et al. Research on the application of SM9 algorithm in the field of Internet of things security[J]. Telecom Engineering Technics and Standardization, 2022, 35(9): 22−27, 32 (in Chinese)

    [28] 宋维平. 基于公开密钥密码体制的数字签名[J]. 中国教育信息化:高教职教,2007,162(15):59−60

    Song Weiping. Digital signatures based on public-key cryptography[J]. Chinese Journal of ICT in Education. 2007, 162(15): 59−60 (in Chinese)

    [29] 殷明. 基于标识的密码算法 SM9 研究综述[J]. 信息技术与信息化,2020,242(5):88−93 doi: 10.3969/j.issn.1672-9528.2020.05.026

    Yin Ming. A review of identity-based cryptographic algorithms SM9[J]. Information Technology and Informatization, 2020, 242(5): 88−93 (in Chinese) doi: 10.3969/j.issn.1672-9528.2020.05.026

    [30] 袁峰,程朝辉. SM9 标识密码算法综述[J]. 信息安全研究,2016,2(11):1008−1027

    Yuan Feng, Cheng Zhaohui. Overview of SM9 identity cryptography algorithms[J]. Journal of Information Security Research, 2016, 2(11): 1008−1027 (in Chinese)

    [31] 边杏宾,马俊明,胡志勇,等. SM9在泛在物联网中的应用研究[J]. 信息技术与网络安全,2022,41(2):27−32

    Bian Xingbin, Ma Junming, Hu Zhiyong, et al. Application research of SM9 in ubiquitous Internet of things[J]. Information Technology & Network Security, 2022, 41(2): 27−32 (in Chinese)

    [32] 杨国强,孔凡玉,徐秋亮. 一种基于FPGA的SM9快速实现方法[J]. 山东大学学报 (理学版),2020,55(9):54−61

    Yang Guoqiang, Kong Fanyu, Xu Qiuliang. A fast implementation method for SM9 based on FPGA[J]. Journal of Shandong University (Natural Science), 2020, 55(9): 54−61 (in Chinese)

    [33]

    Avizienis A, Laprie J C, Randell B, et al. Basic concepts and taxonomy of dependable and secure computing[J]. IEEE Transactions on Dependable and Secure Computing, 2004, 1(1): 11−33 doi: 10.1109/TDSC.2004.2

    [34]

    Tomlinson A. Smart Cards, Tokens, Security and Applications, Introduction to the TPM[M]. Berlin: Springer, 2017

    [35] 沈昌祥,张焕国,王怀民,等. 可信计算的研究与发展[J]. 中国科学:信息科学,2010,40(2):139−166

    Shen Changxiang, Zhang Huanguo, Wang Huaimin, et al. Research and development in trustworthy computing[J]. SCIENTIA SINICA Informationis, 2010, 40((2): ): 139−166 (in Chinese)

    [36]

    Lee R B. Processor architecture for trustworthy computers[C] //Proc of Asia-Pacific Conf on Advances in Computer Systems Architecture. Berlin: Springer, 2005: 1−2

    [37]

    Parno B, Mccune J M, Perrig A. Bootstrapping trust in commodity-computers[C] //Proc of IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2010: 414−429

    [38] 谭良,徐志伟. 基于可信计算平台的信任链传递研究进展[J]. 计算机科学,2008,35(10):15−18 doi: 10.3969/j.issn.1002-137X.2008.10.003

    Tan Liang, Xu Zhiwei. Research progress on trust chain transmission based on trusted computing platform[J]. Computer Science, 2008, 35(10): 15−18 (in Chinese) doi: 10.3969/j.issn.1002-137X.2008.10.003

    [39]

    Dave A, Banerjee N, Patel C. Care: Lightweight attack resilient secure boot architecture with onboard recovery for RISC-V based SoC[C] //Proc of the 22nd Int Symp on Quality Electronic Design (ISQED). Piscataway, NJ: IEEE, 2021: 516−521

    [40]

    Ling Zhen, Yan Huaiyu, Shao Xinhui, et al. Secure boot, trusted boot and remote attestation for ARM TrustZone-based IoT nodes[J/OL]. Journal of Systems Architecture, 2021[2024-03-15]. https://www.sciencedirect.com/science/article/abs/pii/S1383762121001661

    [41]

    Raj H, Saroiu S, Wolman A, et al. fTPM: A software-only implementation of a TPM chip[C/OL] //Proc of the 25th USENIX Security Symp. Berkeley, CA: USENIX Association , 2016: 841−856

    [42] OpenAnolis. 商用密码技术最佳实践白皮书 [EB/OL]. 2022[2023-08-30]. https://openanolis.github.io/whitebook-shangmi/secure_boot.html

    OpenAnolis. Commercial Cryptography Best Practices White Paper [EB/OL]. 2022[2023-08-30]. https://openanolis.github.io/whitebook-shangmi/secure_boot.html (in Chinese)

    [43] 刘畅,武延军,吴敬征,等. RISC-V指令集架构研究综述[J]. 软件学报,2021,32(12):3992−4024

    Liu Chang, Wu Yanjun, Wu Jingzheng, et al. Survey on RISC-V system architecture research[J]. Journal of Software, 2021, 32(12): 3992−4024 (in Chinese)

    [44]

    Menon A, Murugan S, Rebeiro C, et al. Shakti-T: A RISC-V processor with light weight security extensions[C]//Proc of the Hardware and Architectural Support for Security and Privacy. 2017[2024-03-15]. https://dl.acm.org/doi/10.1145/3092627.3092629

    [45]

    Wong M M, Haj-Yahya J, Chattopadhyay A. SMARTS: Secure memory assurance of RISC-V trusted SoC[C] //Proc of the 7th Int Workshop on Hardware and Architectural Support for Security and Privacy. Los Angeles, CA: HASP, 2018: 1−8

    [46]

    Lee D, Kohlbrenner D, Shinde S, et al. Keystone: An open framework for architecting TEEs [EB/OL]. (2022-04-02) [2024-03-15]. http://docs.keystone-enclave.org/en/latest/

    [47]

    Lebedev I, Hogan K, Devadas S. Secure boot and remote attestation in the Sanctum processor[C] //Proc of the 31st Computer Security Foundations Symp(CSF). Piscataway, NJ: IEEE, 2018: 46−60

    [48]

    Nikiema P R, Palumbo A, Aasma A, et al. Towards dependable RISC-V cores for edge computing devices[C]//Proc of the 29th IEEE Int Symp on On-Line Testing and Robust System Design (IOLTS). Piscataway, NJ: IEEE, 2023: 1−7

    [49] 张雨昕,芮志清,李威威,等. 基于 RISC-V 协处理器的内存溢出防御机制[J]. 计算机系统应用,2021,30(11):11–19

    Zhang Yuxin, Rui Zhiqing, Li Weiwei, et al. PEC-V: Memory overflow defense mechanism based on RISC-V coprocessor[J]. Computer Systems & Applications, 2021, 30(11): 11−19 (in Chinese)

    [50]

    Ahn N Y, Lee D H. Forensic issues and techniques to improve security in SSD with flex capacity feature[J]. IEEE Access, 2021, 9: 167067−167075

    [51] 朱留富,李继国,赖建昌,等. 基于商密SM9的属性基在线/离线签名方案[J]. 计算机研究与发展,2023,60(2):362−370

    Zhu Liufu, Li Jiguo, Lai Jianchang, et al. Attribute-based online/offline signature scheme based on SM9[J]. Journal of Computer Research and Development, 2023, 60(2): 362−370 (in Chinese)

  • 期刊类型引用(3)

    1. 钱进,王随,吴昊. 基于国产化平台网络异常数据流处理的研究与实现. 雷达与对抗. 2024(02): 60-63 . 百度学术
    2. 尹小康,蔡瑞杰,杨启超,刘胜利. 基于静态和动态混合分析的内存拷贝类函数识别. 软件学报. 2024(07): 3291-3313 . 百度学术
    3. 陈晓武,孙志敬. 信息化技术在空调控制器上的应用. 日用电器. 2022(11): 85-88 . 百度学术

    其他类型引用(2)

图(8)  /  表(2)
计量
  • 文章访问数:  471
  • HTML全文浏览量:  46
  • PDF下载量:  116
  • 被引次数: 5
出版历程
  • 收稿日期:  2024-02-01
  • 修回日期:  2024-03-12
  • 网络出版日期:  2024-04-14
  • 刊出日期:  2024-05-31

目录

/

返回文章
返回