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

基于多模态大语言模型的攻击性模因解释生成方法

林萌, 戴程威, 郭涛

林萌, 戴程威, 郭涛. 基于多模态大语言模型的攻击性模因解释生成方法[J]. 计算机研究与发展, 2024, 61(5): 1206-1217. DOI: 10.7544/issn1000-1239.202330960
引用本文: 林萌, 戴程威, 郭涛. 基于多模态大语言模型的攻击性模因解释生成方法[J]. 计算机研究与发展, 2024, 61(5): 1206-1217. DOI: 10.7544/issn1000-1239.202330960
Lin Meng, Dai Chengwei, Guo Tao. A Method for Generating Explanations of Offensive Memes Based on Multimodal Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(5): 1206-1217. DOI: 10.7544/issn1000-1239.202330960
Citation: Lin Meng, Dai Chengwei, Guo Tao. A Method for Generating Explanations of Offensive Memes Based on Multimodal Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(5): 1206-1217. DOI: 10.7544/issn1000-1239.202330960
林萌, 戴程威, 郭涛. 基于多模态大语言模型的攻击性模因解释生成方法[J]. 计算机研究与发展, 2024, 61(5): 1206-1217. CSTR: 32373.14.issn1000-1239.202330960
引用本文: 林萌, 戴程威, 郭涛. 基于多模态大语言模型的攻击性模因解释生成方法[J]. 计算机研究与发展, 2024, 61(5): 1206-1217. CSTR: 32373.14.issn1000-1239.202330960
Lin Meng, Dai Chengwei, Guo Tao. A Method for Generating Explanations of Offensive Memes Based on Multimodal Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(5): 1206-1217. CSTR: 32373.14.issn1000-1239.202330960
Citation: Lin Meng, Dai Chengwei, Guo Tao. A Method for Generating Explanations of Offensive Memes Based on Multimodal Large Language Models[J]. Journal of Computer Research and Development, 2024, 61(5): 1206-1217. CSTR: 32373.14.issn1000-1239.202330960

基于多模态大语言模型的攻击性模因解释生成方法

详细信息
    作者简介:

    林萌: 1991 年生. 博士研究生. 主要研究方向为多模态仇恨言论检测、多模态语义理解

    戴程威: 2000 年生. 硕士研究生. 主要研究方向为模型提取、大模型蒸馏

    郭涛: 1974 年生. 博士,教授,博士生导师. 主要研究方向为网络空间安全、漏洞分析与风险评估

    通讯作者:

    郭涛(guotao@iie.ac.cn

  • 中图分类号: TP183

A Method for Generating Explanations of Offensive Memes Based on Multimodal Large Language Models

More Information
    Author Bio:

    Lin Meng: born in 1991. PhD candidate. Her main research interests include multi-modal hate speech detection and multimodal semantic understanding

    Dai Chengwei: born in 2000. Master candidate. His main research interests include model extraction and large language model distillation

    Guo Tao: born in 1974. PhD, Professor, PhD supervisor. His main research interests include cybersecurity, vulnerability analysis and risk assessment

  • 摘要:

    随着5G的发展,攻击性言论逐渐以多模态的方式在社交网络上广泛传播. 因此,攻击性模因的检测与解释生成对于提高内容审核效果、维护和谐健康的舆论场环境有着重要的作用. 现有的攻击性模因解释生成研究只关注于攻击对象和攻击内容,忽略了模因包含的社会背景知识和隐喻表达手法,无法全面、准确地解释攻击性模因的含义,大大限制了解释的应用范围. 为了应对这一挑战,提出一种基于多模态大模型的攻击性模因解释生成方法,通过增强攻击目标、攻击内容和隐喻识别等多种指令数据,利用其微调多模态大模型,以提升大模型对攻击性模因的解释生成能力. 实验结果证实,该方法生成的解释具有3点优势:一是相比基线模型在BERTScore评估指标上提高了19%;二是解释中包含了攻击性隐喻表达的相关背景知识;三是在处理未见的模因数据时也表现出良好的泛化性能.

    Abstract:

    With the advancement of 5G technology, offensive speech has increasingly proliferated across social networks in the form of multimodal memes. Consequently, the detection and interpretive generation of offensive memes play a crucial role in enhancing content moderation effectiveness and maintaining a harmonious and healthy public discourse environment. Existing studies on the interpretive generation of offensive memes focus solely on the targets and content of offense, neglecting the societal background knowledge and metaphorical expressions embedded in memes. This oversight limits the ability to comprehensively and accurately interpret the meaning of offensive memes, thus constraining the applicability of interpretations. To address this challenge, we propose a method based on multimodal large language model for generating interpretations of offensive memes. By augmenting elements such as offense targets, the content of the offense, and metaphor recognition into the instruction tuning data, we can effectively improve the multimodal large model’s proficiency in interpretively generating offensive memes through instruction tuning. The experimental outcomes validate three key strengths of our method: first, it achieves a notable 19% enhancement in the BERTScore evaluation metric over baseline models; second, it incorporates comprehensive background knowledge pertinent to offensive metaphorical expressions within its interpretations; third, it exhibits strong generalization capabilities when handling previously unseen meme data.

  • 身份认证协议使用户能够高效、方便地访问远程资源. 但传统的身份认证协议仅向用户提供来自单一身份验证服务器的访问服务提供商,如果用户试图通过使用这些认证协议来访问多个独立的服务提供商,则需在不同系统中进行注册,保存大量的账号和口令. 这种基于用户名和认证信息的独立身份管理系统使所有参与的服务端和用户端都需要功能类似的认证模块,导致系统资源的浪费,同时增加用户认证信息被泄露的风险.

    单点登录(single sign on, SSO )方案是允许用户使用一个主凭证来访问多个在线账户方案的总称,它结合认证与授权,一般应用在多个应用的系统中. 用户只需要登录1次,在进行身份认证后就可以访问相互信任的应用系统,解决了独立身份管理系统的弊端.

    2004年,Wu等人[1]首次提出多应用系统下的单点登录方案. 2006年,Mangipudi等人[2]提出匿名单点登录(anonymous single sign on, ASSO)方案,解决了用户访问服务过程中的拒绝服务(DoS)攻击. 2012年,Chang等人[3]提出可以解决假冒攻击的ASSO方案. 2013年,Wang等人[4]指出Chang等人[3]的方案不能有效保护用户证书,进而基于RSA签名构造了ASSO方案. 2017年,Wen等人[5]提出了一个基于拉格朗日插值多项式的ASSO方案,它的匿名仅提供给用户而不提供给服务器,易受用户和服务器假冒攻击,且用户的服务请求由系统的所有验证者来验证,而不是由指定的验证者来验证,这可能对用户和验证者都造成潜在隐私泄露风险. 同年,Gope等人[6]针对移动云计算服务,在限制用户访问服务次数的前提下,提出一个满足用户与服务提供商间双向匿名认证的方案,解决了用户单点登录时的隐私泄露问题.

    为解决用户访问服务时的限制问题,2018年,Lee[7]构造的基于切比雪夫混沌映射的高效ASSO方案,该方案在多个服务提供商串通时,不能实现用户对服务提供商的匿名. Jegadeesan等人[8]基于ECDLP困难问题提出新的解决方案,通过可信第三方为用户分发一个随机值来生成私钥,实现分布式移动计算环境中用户对服务提供商的匿名认证. 2019年,Jia等人[9]针对移动边缘计算提出基于身份的匿名认证方案,利用k-改进的双线性逆Diffie-Hellman(k-modified bilinear inverse Diffie–Hellman, k-mBIDH)困难问题,在可信第三方不参与的情况下,通过服务器对用户登录消息的解密,实现用户的匿名单点登录.

    现存的ASSO方案[8-13]可以实现用户匿名访问服务,但此时用户的完全匿名性,导致用户可以随意进行恶意操作,从事非法活动而不被问责. 对于这种情况,应该有监督机构揭示出用户的身份,必要时对用户追责,追溯出用户所有的服务请求. 2018年,Han等人[14]引入指定验证者签名[15-18]技术,提出一个只能由指定服务提供商验证的ASSO方案,实现服务不可链接性. 并在此基础上构造出新的ASSO方案[19],该方案在指定的服务提供商不可用时,中央验证者可以授权新的服务商代表原始服务商对用户进行认证,同时也可以揭示用户身份并追溯用户的服务请求,实现问责性. 2021年,Zhang等人[20]构造出轻量级的ASSO方案,采用PS签名[21]构造匿名凭证,利用非交互零知识证明技术对用户信息进行选择性披露,在保护用户隐私的情况下实现用户的匿名单点登录;在解密机构的协助下,对行为不端的用户进行问责. 该方案有效降低通信开销,但匿名凭证与非交互零知识证明的生成,导致其计算效率较低.

    文献[8-14,19-20]的ASSO方案都是基于大整数分解和离散对数等数论难题设计的,随着量子计算领域的研究不断取得突破,解决这些数论难题成为可能[22]. 目前国际后量子密码研究中,格密码体制因其安全性高、运算速度快等特点受到了广泛关注,已知格上的最短向量问题(shortest vector problem, SVP)和最近向量问题(closest vector problem, CVP)等难题在量子计算机下还未存在概率多项式时间高效求解算法[23].

    为解决匿名单点登录过程中用户不诚信行为的问题,本文采用格上基于身份的密码体制,提出了一个格上可追溯的匿名单点登录方案. 主要贡献有4点:

    1)构建格上基于身份的可追溯的ASSO方案. 利用格上基于身份的密码体制缓解现有单点登录方案中公钥证书管理问题,采用指定验证者签名技术[24]实现用户服务请求的定向验证. 方案的不可链接性、不可伪造性与可追溯性都可规约至非齐次小整数解(inhomogeneous small integer solution,ISIS)问题上. 在NIST后量子密码标准化进程的不断推进下,本方案可以有效抵抗量子攻击[23,25-26].

    2)采用授权认证标签和假名技术[27]实现用户匿名性. 为保护用户隐私,利用假名 ({{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v}) 进行用户身份认证与服务请求. 由于假名是一次性的,因此所提方案可以有效抵抗假冒攻击与重放攻击. 同时在假名泄露的情况下,敌手也无法从多个已泄露的假名中揭露出任何有关用户身份的信息,有效解决跨多个验证器验证过程中的用户信息泄露问题.

    3)对行为不端用户进行问责. 用户的匿名性可能会导致用户进行恶意的服务请求,必要时可信机构可以根据用户的服务票据{T_u},恢复出用户身份I{D_u} = \dfrac{{{c_2} - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{c}}_1}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }},取消用户的匿名,追溯出用户的服务请求.

    4)在达到112 b,230 b,292 b的量子安全级别下进行方案效率分析. 实验结果表明,与现有的单点登录方案[4,7,19]相比,本方案生成的密钥尺寸更小,在降低通信开销的同时有效提高计算效率,具有更强的安全性.

    n为安全参数,素数 q \in \mathbb{Z} 为模,大写黑体字母(如{\boldsymbol{A}})为矩阵,{{\boldsymbol{A}}^{\text{T}}}{\boldsymbol{A}}的转置,小写黑体字母(如{\boldsymbol{a}})为列向量,以及||{\boldsymbol{a}}|| = \sqrt {a_1^2 + a_2^2 + … + a_n^2}是向量{\boldsymbol{a}} = ({a_1}, {a_2}, … ,{a_n}) \in {\mathbb{R}^n}的欧几里得范数,a\mathop \in \limits^{{\rm{R}}} \chi表示 a 是从集合 \chi 中均匀随机选取的. poly(n)n的多项式函数,\log nn的对数关系函数.

    矩阵 {\boldsymbol{B}} = ({{\boldsymbol{b}}_1},{{\boldsymbol{b}}_2}, … ,{{\boldsymbol{b}}_m}) \in {\mathbb{Z}^{n \times m}}{{\boldsymbol{b}}_1},{{\boldsymbol{b}}_2}, …,{{\boldsymbol{b}}_m} \in {\mathbb{Z}^n}m个线性无关的向量. 由 {\boldsymbol{B}} 生成的格定义为{{\varLambda }} = \left\{ \displaystyle\sum_{i = 1}^m {{x_i}{{\boldsymbol{b}}_i}:{x_i} \in \mathbb{Z}} \right\} n m 是整数,且分别是格 {{\varLambda }} 的维数和秩,{\boldsymbol{B}} {{\varLambda }} 的基.

    定义1. ISIS问题. 设 {\boldsymbol{A}} \in \mathbb{Z}_q^{n \times m} ,实数 \beta > 0 . {\text{ISI}}{{\text{S}}_{q,n,m,\beta }}问题的目标是给定任意向量 {\boldsymbol{y}} \in {\mathbb{Z}^n} ,找到一个非零向量{\boldsymbol{x}} \in {\mathbb{Z}^m},使 {\boldsymbol{Ax}} = {\boldsymbol{y}}(\bmod q) \left\| {\boldsymbol{x}} \right\| \leqslant \beta 成立. 当{\boldsymbol{y}} = {(0)^n}时,可转化为 {\text{SI}}{{\text{S}}_{q,n,m,\beta }} (small integer solution)问题,其目标是找到一个非零向量{\boldsymbol{x}} \in {\mathbb{Z}^m},使{\boldsymbol{Ax}} = {\textit{0}}(\bmod q) \left\| {\boldsymbol{x}} \right\| \leqslant \beta 成立.

    定义2. 最短独立向量问题(shortest independent vector problem, SIVP). 设矩阵 {\boldsymbol{B}} \in {\mathbb{Z}^{n \times m}} 是格{{\varLambda }} \in {\mathbb{Z}^n}的基. 格 {{\varLambda }} 的最短独立向量问题是找一个 n 个线性无关的格向量集合C = \{ {{\boldsymbol{c}}_1},{{\boldsymbol{c}}_2}, … ,{{\boldsymbol{c}}_n}\} \subset {{\varLambda }},使得\left\| {{{\boldsymbol{c}}_i}} \right\| = {\lambda _i}({{\varLambda }}). {\text{SIV}}{{\text{P}}_\gamma } 的目标是获得一个集合C = \{ {{\boldsymbol{c}}_1},{{\boldsymbol{c}}_2}, … ,{{\boldsymbol{c}}_n}\} \subset {{\varLambda }},使得\left\| C \right\| \leqslant \gamma \cdot {\lambda _n}\left( {{\varLambda }} \right),其中{\lambda _n}({{\varLambda }}) {{\varLambda }} 的第 n 个连续最小值.

    引理1. 给定正整数 n ,多项式界定的 m \approx ploy(n) \beta \approx ploy(n) ,素数q \geqslant \beta \cdot w\sqrt {(n\log n)}. 在平均情况下找到 {\text{SI}}{{\text{S}}_{q,n,m,\beta }} {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 问题的解,与在任意 n 维格上,在最糟糕的情况下求解 {\text{SIV}}{{\text{P}}_\gamma } 问题一样困难,其中\gamma = \beta \cdot\tilde O(\sqrt n )[28].

    对于任意 \sigma \gt 0 ,以 {\boldsymbol{c}} \in {\mathbb{R}^m} 为中心、 \sigma 为标准差的格 {{\varLambda }} 上离散高斯分布定义为{D_{{{\varLambda }},\sigma ,{\boldsymbol{c}}}}({\boldsymbol{x}}) = \dfrac{{{\rho _{\sigma ,{\boldsymbol{c}}}}({\boldsymbol{x}})}}{{{\rho _{\sigma ,{\boldsymbol{c}}}}({{\varLambda }})}},其中, {\boldsymbol{x}} \in {{\varLambda }} {\rho _{\sigma ,{\boldsymbol{c}}}}({\boldsymbol{x}}) = \exp \left( { - \dfrac{{{\text{π }}{{\left\| {{\boldsymbol{x}} - {\boldsymbol{c}}} \right\|}^2}}}{{{\sigma ^2}}}} \right){\rho _{\sigma ,{\boldsymbol{c}}}}({{\varLambda }}) = \displaystyle\sum_{{\boldsymbol{x}} \in {{\varLambda }}} {{\rho _{\sigma ,{\boldsymbol{c}}}}({\boldsymbol{x}})}. {\boldsymbol{c}} 为零向量时,可以忽略不写.

    引理2. 高斯分布具有2个性质. 给定标准差 \sigma 和正整数 m ,则:

    1) Pr[{\boldsymbol{x}} \leftarrow D_\sigma ^m:\left\| {\boldsymbol{x}} \right\| > 2\sigma \sqrt m ] < {2^{ - m}}

    2) Pr[{\boldsymbol{x}} \leftarrow D_\sigma ^1:||{\boldsymbol{x}}|| > \omega (\sigma \sqrt {\log m} )] = {2^{ - w\log m}} .

    系统初始化时,各参与方必须从被称为“私钥生成器(private key generator,PKG)”的可信第三方获得基于身份的公私钥. 整个方案流程如图1所示,用户(user,U)加入系统时,需要把自己的公钥和身份发送给中央验证者(central verifier,CV),以便去匿名化. 用户为获得1个票据,给票据发行者(issuer,I)发送自己的服务请求,票据发行者为用户生成相应的票据. 随后用户给指定服务提供商发送相应的认证标签,服务提供商也称票据验证者(verifier,V),当票据验证者认证标签通过后,就可授权用户去访问服务. 当用户出现不诚信行为时,中央验证者可以通过票据对用户进行去匿名化,追溯出用户的整个服务请求. 在具体方案中,用户、中央验证者、票据发行者、票据验证者分别被实例化为u,cv,issv.

    图  1  格上可追溯的ASSO方案流程图
    Figure  1.  Flow chart of the supervised ASSO scheme on lattice

    可追溯的匿名单点登录方案由6个多项式时间算法组成.

    1) Keygen{\text{(}}{{\text{1}}^n}{\text{)}} :输入安全参数n,输出系统的公共参数 Param 以及系统主密钥 {\boldsymbol{msk}} .

    2) ExtractKey{\text{(}}Param,I{D_j},{\boldsymbol{msk}}{\text{)}} :输入系统的公共参数 Param ,身份 I{D_j} 以及系统的主密钥 {\boldsymbol{msk}} ,输出私钥 {\boldsymbol{s}}{{\boldsymbol{k}}_j} 和公钥 {\boldsymbol{p}}{{\boldsymbol{k}}_j} .

    3){User{\text{-}}Registration}(Inpu{t}_{u}(Param,I{D}_{u},{\boldsymbol{p}}{{\boldsymbol{k}}_{u}},{\boldsymbol{p}}{{\boldsymbol{k}}_{cv}}){\leftrightarrow} {Inpu{t_{cv}}(Param,{\boldsymbol{s}}{{\boldsymbol{k}}_{cv}}))} :输入公共参数 Param ,用户身份 I{D_u} 以及公钥 {\boldsymbol{p}}{{\boldsymbol{k}}_u} ,中央验证者公私钥 ({\boldsymbol{p}}{{\boldsymbol{k}}_{cv}},{\boldsymbol{s}}{{\boldsymbol{k}}_{cv}}) ,最终中央验证者在本地列表里存储 (I{D_u},{\boldsymbol{p}}{{\boldsymbol{k}}_u}) . “ \leftrightarrow ”表示该算法需要在用户和中央验证者的交互下才可以有正确输出.

    4)Ticket{\text{-}}Issuing(Inpu{t_u}{\text{(}}Param,{J_u},{\boldsymbol{s}}{{\boldsymbol{k}}_u}) \leftrightarrow Inpu{t_{iss}} ({\boldsymbol{s}}{{\boldsymbol{k}}_{iss}},Param{\text{,}}{\boldsymbol{p}}{{\boldsymbol{k}}_u})):输入系统的公共参数 Param ,票据发行者的私钥 {\boldsymbol{s}}{{\boldsymbol{k}}_{iss}} ,用户想要访问的服务请求 {J_u} 以及公私钥 ({\boldsymbol{p}}{{\boldsymbol{k}}_u},{\boldsymbol{s}}{{\boldsymbol{k}}_u}) ,输出用户服务请求 {J_u} 对应的票据 {T_u} .

    5)Ticket{\text{-}}Validating(Inpu{t_u}(Param,\;Ta{g_v},\;{\boldsymbol{s}}{{\boldsymbol{k}}_u}) \;\;\;\; \leftrightarrow\;\;\;Inpu{t_v} (Param{\text{,}}{\boldsymbol{s}}{{\boldsymbol{k}}_v},{\boldsymbol{p}}{{\boldsymbol{k}}_v},{\boldsymbol{p}}{{\boldsymbol{k}}_u},{\boldsymbol{p}}{{\boldsymbol{k}}_{iss}})):输入系统的公共参数 Param ,指定票据验证者的公私钥 ({\boldsymbol{p}}{{\boldsymbol{k}}_v},{\boldsymbol{s}}{{\boldsymbol{k}}_v}) ,用户的认证标签 Ta{g_v} 以及公私钥 ({\boldsymbol{p}}{{\boldsymbol{k}}_u},{\boldsymbol{s}}{{\boldsymbol{k}}_u}) ,票据发行者的公钥 {\boldsymbol{p}}{{\boldsymbol{k}}_{iss}} . 如果 Ta{g_v} 通过验证,返回“Valid”,否则返回“Invalid”.

    6)Ticket{\text{-}}Trace(Inpu{t}_{u}({T}_{u})\leftrightarrow Inpu{t}_{cv}(Param, {\boldsymbol{s}}{{\boldsymbol{k}}_{cv}})) :输入系统的公共参数 Param 和用户票据 {T_u} ,中央验证者的私钥 {\boldsymbol{s}}{{\boldsymbol{k}}_{cv}} . 如果追溯成功,则输出用户的身份 I{D_u} 以及其服务请求 {J_u} ,否则返回 “ \bot ”.

    一个具有可追溯性的匿名单点登录方案需要满足用户服务的不可链接性、票据的不可伪造性和服务票据的可追溯性[19].

    定义3. 不可链接性. 要求即使某些票据验证者与用户串通时也不能对其他用户的整个服务信息进行剖析,有效保护用户服务请求的隐私. 如果对于任意概率多项式时间(probabilistic polynomial time,PPT)算法敌手\mathcal{A} \mathcal{A} 最多进行{\sigma _{\text{1}}}次票据发行询问、{\sigma _{\text{2}}}次票据验证询问、{\sigma _{\text{3}}}次票据追溯询问,以可忽略的优势Ad{v_\mathcal{A}} = \left|Pr[b' = b] - \dfrac{1}{2}\right| \leqslant \varepsilon (\ell )赢得游戏挑战时,则称格上可追溯的匿名单点登录方案是({\sigma _1},{\sigma _2},{\sigma _3},\varepsilon (\ell ))用户服务请求安全的(具体见4.2节).

    定义4. 不可伪造性. 要求即便指定票据验证者、中央验证者与用户串通,它们也不能伪造一个有效的票据. 如果对于任意PPT敌手\mathcal{A} \mathcal{A} 最多进行p次票据发行询问时,对于所有 I{D_v} \in {J_u} ,以可忽略的优势Ad{v_\mathcal{A}} = Pr[Ticket{\text{-}}Validating(Inpu{t_u} \leftrightarrow Inpu{t_v}) \to ( \bot ,(1,Ta{g_{{v^*}}}))] \leqslant \varepsilon (\ell )赢得游戏挑战时,称格上可追溯的匿名单点登录方案是(p,\varepsilon (\ell ))票据发行安全的(具体见4.3节).

    定义5. 可追溯性要求. 即便某些用户串通,它们也无法生成属于串通组某一成员的票据,使得票据追溯算法无法捕捉到该票据. 本文假设票据发行者是诚实的. 如果任意PPT敌手\mathcal{A} 在最多进行k次票据发行询问时,以可忽略的优势 Ad{v_\mathcal{A}} = Pr[{u^*} \ne \widetilde u \in Q{K_u}| Ticket{\text{-}}Trace(Inpu{t_u} \leftrightarrow Inpu{t_{cv}}) \to (\widetilde u,{J_{\widetilde u}})] \leqslant \varepsilon (\ell ) 赢得所构造的游戏挑战时,则称格上可追溯的匿名单点登录方案是(k,\varepsilon (\ell ))可追溯的(具体见4.4节).

    本文使用方阵 {\boldsymbol{A}}\mathop \in \limits^{\text{R}} \mathbb{Z}_q^{m \times m} ,有助于在矩阵本身与行/列向量间执行运算,从而保持矩阵乘法的平稳运行. 方案包括6个阶段.

    运行 Keygen{\text{(}}{1^n}{\text{)}} 算法,以安全参数 n 作为算法输入,最终输出PKG的主密钥 {\boldsymbol{msk}} 和系统的公共参数 Param . PKG执行运算1)~4):

    1)选择1个安全参数 n \beta = ploy(n) ,素数模 q \geqslant \beta \sqrt {\omega (n\log n)} ,整数 m \geqslant 2n\log q ,高斯参数 \sigma 和矩阵 {\boldsymbol{A}}\mathop \in \limits^{\text{R}} \mathbb{Z}_q^{m \times m} {\boldsymbol{A}} 的秩为 n (m \geqslant n) .

    2)选取 {\boldsymbol{x}}\mathop \in \limits^{\text{R}} D_\sigma ^m ,以压倒性的概率输出 ||{\boldsymbol{x}}|| \leqslant 2\sigma \sqrt m \leqslant \dfrac{\beta }{2},并计算 {\boldsymbol{mpk}} = {\boldsymbol{Ax}} ,则主密钥 {\boldsymbol{msk}} = {\boldsymbol{x}} {\boldsymbol{mpk}} 是主公钥.

    3)选择5个加密安全的Hash函数: h:{\{ 0,1\} ^*} \to \{ r:\{ - 1,0,1\} ^m,\left\| r \right\|_1 \leqslant \eta \} \eta r 的汉明值;{H_1}:{\left\{ {0,1} \right\}^*} \to \mathbb{Z}_2^{m \times m} \mathbb{Z}_2^{m \times m} 是一个对角线上为 \{ 0,1\} 、其他为0的方阵;{H_2}:{\left\{ {0,1} \right\}^*} \to \mathbb{Z}{H_3}:{\left\{ {0,1} \right\}^*} \to {\left\{ {0,1} \right\}^\tau }\tau \lt mH:{\left\{ {0,1} \right\}^*} \to B\;_k^mB\;_k^m是长度为 m 且 “1” 的个数为k的二进制向量集.

    4)主密钥 {\boldsymbol{x}} 保密,公开 Param = \{ m,n,q,{\boldsymbol{A}}, {\boldsymbol{mpk}},{H_1}, {H_2},{H_3},h,H\}.

    密钥提取阶段用来产生各参与者基于身份的私钥,此阶段使用安全通道进行信息发送. 该阶段以PKG的主密钥、参与者的身份以及公共参数作为输入,输出参与者基于身份的私钥. 用户为了获得基于身份的公私钥,给PKG发送它的身份. 为了使用户注册阶段和票据追溯阶段能够顺利恢复出用户身份,设I{D_u} \in {{\{ 0,1\} }^{64}}. PKG选择{{\boldsymbol{r}}_u}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{r}}_u} {{\boldsymbol{R}}_u} = {H_1}\left( {I{D_u},{{\boldsymbol{l}}_u}} \right) {{\boldsymbol{d}}_u} = {{\boldsymbol{r}}_u} + {{\boldsymbol{R}}_u}\cdot{\boldsymbol{x}}\bmod q,用安全信道将\left\langle { {{\boldsymbol{l}}_u},{{\boldsymbol{d}}_u} } \right\rangle发送给用户. 基于身份的私钥 {{\boldsymbol{d}}_u} 如果满足{\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u} = {{\boldsymbol{l}}_u} + {{\boldsymbol{R}}_u}\cdot{\boldsymbol{mpk}},则是有效的,此时用户的公钥为{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u}. 使用相同的方法,计算中央验证者基于身份的公私钥 ({{\boldsymbol{d}}_{cv}},{\boldsymbol{p}}{{\boldsymbol{k}}_{cv}}) ,指定票据验证者基于身份的公私钥 ({{\boldsymbol{d}}_v},{\boldsymbol{p}}{{\boldsymbol{k}}_v}) .

    票据发行者基于身份的公私钥生成方式略有不同,票据发行者给PKG发送身份 I{D_{iss}} . 然后PKG选择{{\boldsymbol{r}}_{iss}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_{iss}} = {\boldsymbol{r}}_{iss}^{\text{T}}\cdot{\boldsymbol{A}}{{\boldsymbol{R}}_{iss}}={H}_{1}(I{D}_{iss},{{\boldsymbol{l}}_{iss}}){{\boldsymbol{d}}_{iss}} = {{\boldsymbol{r}}_{iss}} + {{\boldsymbol{R}}_{iss}}\cdot{\boldsymbol{x}}\bmod q,最终给票据发行者返回\left\langle {{{\boldsymbol{l}}_{iss}},{{\boldsymbol{d}}_{iss}}} \right\rangle. 计算{\boldsymbol{p}}{{\boldsymbol{k}}_{iss}} = {\boldsymbol{d}}_{iss}^{\text{T}}\cdot{\boldsymbol{A}},则票据发行者基于身份的私钥为 {{\boldsymbol{d}}_{iss}} ,公钥为 {\boldsymbol{p}}{{\boldsymbol{k}}_{iss}} .

    用户加入系统时,需要向中央验证者注册,以便中央验证者对用户去匿名化,追溯出其服务请求. 每个用户加入系统时,选取{\boldsymbol{b}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算2个密文{{\boldsymbol{c}}_1} = {{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{b}}{c_2} = {\boldsymbol{pk}}_{cv}^{\text{T}}\cdot{\boldsymbol{b}} + I{D_u} \cdot \left\lfloor {\dfrac{q}{2}} \right\rfloor,然后发送 (({{\boldsymbol{c}}_1},{c_2}),{{\boldsymbol{l}}_u}) 给中央验证者,中央验证者收到信息后,计算I{D_u} = \dfrac{{{c_2} - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{c}}_1}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }},得到用户的身份 I{D_u} ,通过验证{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {{\boldsymbol{l}}_u} + {H_1}(I{D_u},{{\boldsymbol{l}}_u})\cdot{\boldsymbol{mpk}}是否成立,保证用户身份的合法性,如果成立,则本地存储用户的 (I{D_u},{\boldsymbol{p}}{{\boldsymbol{k}}_u}) .

    为获得1张票据,用户选择它的服务信息 {J_u} {J_u} 由用户想要访问的服务所对应验证者的身份 I{D_v} 组成,即 I{D_v} \in {J_u} . 整个具体过程如图2所示,对于每个 I{D_v} \in {J_u} ,用户使用其私钥 {{\boldsymbol{d}}_u} 生成1个假名 ({{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v}) ,并发送给票据发行者. 票据发行者通过验证{\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v}\mathop = \limits^? {{\boldsymbol{p}}_v}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{p}}{{\boldsymbol{k}}_u}来判断用户是否为1个合法用户,若是合法用户,票据发行者为用户生成认证标签Ta{g_v} = ((f,{{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v}),({\boldsymbol{t}}, {\boldsymbol{r}}, {{\boldsymbol{z}}_u}), ({{\boldsymbol{e}}_1},{e_2}),Text, ({s_v},{{\boldsymbol{c}}_v},{{\boldsymbol{z}}_v})) . ({{\boldsymbol{e}}_1},{e_2}) 是用中央验证者公钥 {\boldsymbol{p}}{{\boldsymbol{k}}_{cv}} 加密 I{D_v} 所生产的2个密文,在票据追溯时,完成用户服务请求的恢复. 签名 ({\boldsymbol{t}},{\boldsymbol{r}},{{\boldsymbol{z}}_u}) 是用来验证 Ta{g_v} 的有效性,只有指定的验证者才可以验证. {s_v} 是认证标签 Ta{g_v} 的序列号, ({s_v},{{\boldsymbol{c}}_v},{{\boldsymbol{z}}_v}) 是票据发行者对 {s_v} 的签名, Text 是时间戳,用来防止票据的重放. 最终票据由这些单独的标签组成,即{T_u} = \{ ({D_v},Ta{g_v})|I{D_v} \in {J_u}\} \cup \{ (S,{\boldsymbol{c}},{\boldsymbol{z}})\}.

    图  2  票据发行阶段
    Figure  2.  Ticket-Issuing phase

    此阶段,票据发行者使用它的私钥对每个认证标签和整个票据进行签名,而认证标签和整个票据的完整性是使用它们各自内容的散列{s_v} = {H_2}({{\boldsymbol{p}}_v}||{{\boldsymbol{q}}_v}|| {{\boldsymbol{e}}_1}||{e_2}||{\boldsymbol{t}}||{\boldsymbol{r}}||{{\boldsymbol{z}}_u}||Text) S = {H_2}({s_1}|| {s_2}|| \cdot \cdot \cdot ||{s_{\left| {{J_u}} \right|}}) 来保证的. 票据发行者将票据发送给用户,用户通过验证散列值来验证每个认证标签和整个票据的完整性,以及验证签名{{\boldsymbol{c}}_v}\mathop = \limits^? H({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{z}}_v}\bmod q,{s_v}){\boldsymbol{c}}\mathop = \limits^? H({{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{z}}\bmod q,S)来证明每个认证标签和整个票据来自票据发行者.

    当验证1个票据时,指定票据验证者初始化1个空表 {T_v} ,将身份 I{D_v} 发送给用户. 用户通过计算 {D_v} = {H_3}({{\boldsymbol{q}}_u},I{D_v}) ,找到对应的标签 Ta{g_v} ,并将 Ta{g_v} 发送给指定票据验证者. 如图3所示,指定票据验证者通过判断 ({s_v}, {{\boldsymbol{c}}_v},{{\boldsymbol{z}}_v}) 是否属于 {T_v} ,来防止票据2次验证. 如果 Ta{g_v} 是个新鲜的标签,则将 ({s_v},{{\boldsymbol{c}}_v},{{\boldsymbol{z}}_v}) 加入 {T_v} ,并通过检查{\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v}\mathop = \limits^? {{\boldsymbol{p}}_v}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{p}}{{\boldsymbol{k}}_u}来验证用户是否为合法用户,检查 {s_v}\mathop = \limits^? {H_2}({{\boldsymbol{p}}_v}||{{\boldsymbol{q}}_v}||{{\boldsymbol{e}}_1}||{e_2}||{\boldsymbol{t}}||{\boldsymbol{r}}||{{\boldsymbol{z}}_u}||Text) {\boldsymbol{r}}\mathop = \limits^? h({\boldsymbol{d}}_v^{\text{T}}\cdot({{\boldsymbol{A}}^{\text{T}}}\cdot {{\boldsymbol{z}}_u} - {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\rm T}}) \cdot{\boldsymbol{t}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}), {{\boldsymbol{c}}_v}\mathop = \limits^? H({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{z}}_v}\bmod q,{s_v})来验证标签的有效性. 若全部成立,则通过验证.

    图  3  票据验证阶段
    Figure  3.  Ticket-Validating phase

    票据追溯阶段用来揭示用户的身份,完成用户的去匿名化,追溯出用户的整个服务请求 {J_u} ,实现监管性. 如图4所示,针对用户的服务票据 {T_u} ,中央验证者初始化一个集合 {P_u} = \{ \} . 当 Ta{g_v} \in {T_u} 时,通过计算{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v} - {\boldsymbol{p}}_v\cdot^{}H(f,{\boldsymbol{p}}_v^{}),再根据本地存储的( {\boldsymbol{p}}{{\boldsymbol{k}}_u}, I{D_u} )去匿名化,最后,计算I{D_v} = \dfrac{{{e_2} - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{e}}_1}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }}获得指定票据验证者的身份,通过判断 I{D_v} \in {J_u} 的所有恒等式来判断用户的服务请求. 此时,如果已知单个标签,在用户不合作的情况下,整个票证信息 {T_u} 也可以直接从票据发行者处获得.

    图  4  票据追溯阶段
    Figure  4.  Ticket-Trace phase

    本文构造的格上可追溯的匿名单点登录方案具有不可链接性、不可伪造性和可追溯性,并给出正确性与安全性证明.

    所构造的格上可追溯的匿名单点登录方案,在用户密钥提取算法 {\text{ExtractKey}} 中,{{\boldsymbol{l}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{r}}_{\boldsymbol{u}}}{{\boldsymbol{d}}_u} = {{\boldsymbol{r}}_u} + {{\boldsymbol{R}}_u}\cdot {\boldsymbol{x}}\bmod q,由此可得式(1)成立,用户的公私钥可以正确生成.

    {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{r}}_u} + {{\boldsymbol{R}}_u}\cdot{\boldsymbol{A}}\cdot {\boldsymbol{x}}= {{\boldsymbol{l}}_u} + {{\boldsymbol{R}}_u}\cdot{\boldsymbol{mpk}} . (1)

    用户注册算法 {\text{User - Registration}} 中,{{\boldsymbol{c}}_{\text{1}}}{c_{\text{2}}}是使用中央验证者公钥对用户身份加密所产生的密文,在式(2)中,通过使用中央验证者的私钥{{\boldsymbol{d}}_{cv}},可以正确解密以恢复用户身份I{D_u}.

    \dfrac{{{c_2} - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{c}}_1}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }} = \dfrac{{{\boldsymbol{pk}}_{cv}^{\text{T}}\cdot{\boldsymbol{b}} + I{D_u} \cdot \left\lfloor {\dfrac{q}{2}} \right\rfloor - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{b}}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }} = I{D_u} . (2)

    对于采用假名技术[27]所生成的正确假名 ({{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v}) ,根据{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u}可知式(3)一定成立,可顺利完成票据发行算法 {\text{Ticket - Issuing}} 中的用户匿名认证. 同时({s_v},{{\boldsymbol{c}}_v},{{{z}}_v})(S,{\boldsymbol{c}},{{z}})分别是票据发行者对{s_v}S的签名,式(4)(5)是对这2个签名的验证过程,由{{{z}}_v} = {{\boldsymbol{u}}_v} + {{\boldsymbol{d}}_{iss}}\cdot{s_v}{{z}} = {\boldsymbol{e}} + {{\boldsymbol{d}}_{iss}}\cdot S可得式(4)(5)成立.

    {\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v} = {\boldsymbol{A}}\cdot{{\boldsymbol{x}}_u}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u} = {{\boldsymbol{p}}_v}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{p}}{{\boldsymbol{k}}_u} \text{,} (3)
    \begin{aligned} H({\boldsymbol{A}}^{\text{T}}\cdot{z}_{v}\mathrm{mod}\;q,{s}_{v}) =&H(({{\boldsymbol A}}^{\text{T}}\cdot{\boldsymbol{u}}_{v}+{\boldsymbol{A}}^{\text{T}}\cdot{\boldsymbol{d}}_{iss}{s}_{v})\mathrm{mod}\;q,{s}_{v}) =\\ &H(({\boldsymbol{A}}^{\text{T}}\cdot{\boldsymbol{u}}_{v}+{\boldsymbol{p{k}}}_{iss}^{\text{T}}\cdot{s}_{v})\mathrm{mod}\;q,{s}_{v})\text{,} \end{aligned} (4)
    \begin{aligned}H({\boldsymbol{A}}^{\text{T}}\cdot z\;\mathrm{mod}\;q,S)=&H(({\boldsymbol{A}}^{\text{T}}\cdot{\boldsymbol{e}}+{\boldsymbol{A}}^{\text{T}}\cdot{\boldsymbol{d}}_{iss}\cdot S)\mathrm{mod}\;q,S) =\\ &H(({\boldsymbol{A}}^{\text{T}}\cdot{\boldsymbol{e}}+{\boldsymbol{p{k}}}_{iss}^{\text{T}}\cdot S)\mathrm{mod}\;q,S). \end{aligned} (5)

    票据验证算法 {\text{Ticket - Validating}} 中,通过对采用指定验证者签名方案[24]所生成的票据信息进行式(6)的验证,完成票据的有效性验证. 已知{{\boldsymbol{z}}_u} = {{\boldsymbol{d}}_{iss}}\cdot{{\boldsymbol{r}}^{\rm T}} + {\boldsymbol{k}}\cdot{{\boldsymbol{t}}^{ - {\text{1}}}},则式(6)恒成立.

    \begin{split} &h({\boldsymbol{d}}_v^{\text{T}}\cdot({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{z}}_u} - {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\rm T}})\cdot{\boldsymbol{t}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}) =\\ &h({\boldsymbol{d}}_v^{\text{T}}\cdot{{\boldsymbol{A}}^{\text{T}}}({{\boldsymbol{z}}_u} - {{\boldsymbol{d}}_{iss}}\cdot{{\boldsymbol{r}}^{\rm T}})\cdot{\boldsymbol{t}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}) = \\ &h({\boldsymbol{d}}_v^{\text{T}}\cdot{{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{k}}\cdot{{\boldsymbol{t}}^{ - 1}}\cdot{\boldsymbol{t}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}) =\\ &h({\boldsymbol{d}}_v^{\text{T}}\cdot{{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{k}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}) = \\ &h({\boldsymbol{pk}}_v^{\text{T}}\cdot{\boldsymbol{k}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}) = {\boldsymbol{r}}. \end{split} (6)

    通过式(7)(8),可以分别完成票据追溯算法 {\text{Ticket - Trace}} 中的用户身份去匿名化和访问服务追溯. 由式(3)成立可知式(7)恒成立. 式(8)是中央验证者{\text{CV}}利用其私钥{{\boldsymbol{d}}_{cv}}对密文({{\boldsymbol{e}}_{\text{1}}},{e_{\text{2}}})进行解密.

    \begin{aligned}{\boldsymbol{A}}\cdot{\boldsymbol{q}}_{v}-{\boldsymbol{p}}_{v}^{}\cdot{H}_{\text{2}}(f,{\boldsymbol{p}}_{v}^{}) =&{\boldsymbol{A}}\cdot{\boldsymbol{x}}_{u}\cdot{H}_{\text{2}}(f,{\boldsymbol{p}}_{v}^{})+{\boldsymbol{A}}\cdot{\boldsymbol{d}}_{u}-\\ &{\boldsymbol{p}}_{v}\cdot^{}{H}_{\text{2}}(f,{\boldsymbol{p}}_{v}^{})={\boldsymbol{p}}{{\boldsymbol{k}}_u}\text{,}\end{aligned} (7)
    \dfrac{{{e_2} - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{e}}_1}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }} = \dfrac{{{\boldsymbol{pk}}_{cv}^{\text{T}}\cdot{\boldsymbol{b}} + I{D_v} \cdot \left\lfloor {\dfrac{q}{2}} \right\rfloor - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{b}}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }} = I{D_v} . (8)

    在PKG的协助下,正确生成各参与方的公私钥,式(1)~(8)成立,用户服务票据能正确生成,并通过指定票据验证者验证,最终中央验证者也可以在必要情况下正确追溯出用户的服务信息. 因此,所提方案满足正确性.

    定理1. 若存在敌手\mathcal{A} 在至多进行{\sigma _1}次票据发行询问、{\sigma _2}次票据验证询问、{\sigma _3}次票据追溯询问后,以({\sigma _1},{\sigma _2},{\sigma _3},{\varepsilon '}(\ell ))的优势打破本方案的选择性不可链接性,则可以构造一个以\mathcal{A} 为子程序的算法\mathcal{B} ,以不可忽略的优势Adv_\mathcal{B}^{{{{{\rm{ISIS}}} }_{q,n,m,\beta }}} = \bigg|\dfrac{1}{2} Pr\left[b' = b|b = 0\right]+ \dfrac{1}{2}Pr\left[b' = b|b = 1\right] - \dfrac{1}{2}\bigg| \geqslant \dfrac{{\varepsilon '\left( \ell \right)}}{2}解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    证明. 给定一个元组({\boldsymbol{r}}_w^*,{{\boldsymbol{t}}^*},{\boldsymbol{k}}),挑战者\mathcal{C} 抛掷一个值为\{ 0,1\} 的硬币,得到1个比特位b \in \{ 0,1\} . 如果b = 0\mathcal{C} \mathcal{B} 发送{\boldsymbol{g}} = {\boldsymbol{d}}_{iss}\cdot{\boldsymbol{r}}{_w^{*\text{T}}} + {\boldsymbol{k}}\cdot{{\boldsymbol{t}}^*}^{ - 1};否则发送 {\boldsymbol{g}}\mathop \in \limits^{\text{R}} \mathbb{Z}_q^m . 最终\mathcal{B} 将输出它对b的猜测{b'}.

    1)初始化. \mathcal{A} 提交2个验证者v_{\text{0}}^*v_{\text{1}}^{\text{*}}\mathcal{B} 抛掷一个值为\{ 0,1\} 的硬币,得到1个比特位w \in \{ 0,1\} . \mathcal{B} 选取{{\boldsymbol{k}}^{}},{{\boldsymbol{r}}'}\mathop \in \limits^{\text{R}} D_\sigma ^m,并计算{\boldsymbol{r}}_w^{\boldsymbol{*}} = h({\boldsymbol{pk}}_v^{\text{T}}\cdot{{\boldsymbol{k}}^{}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}){\boldsymbol{r}}^*_{{\text{1}} - w} = {{\boldsymbol{r}}'}.

    2)系统设置. \mathcal{B} 选择 {\boldsymbol{A}}\mathop \in \limits^{\text{R}} \mathbb{Z}_q^{m \times m} {\boldsymbol{x}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{\boldsymbol{mpk}} = {\boldsymbol{A}}\cdot{\boldsymbol{x}} h:{\{ 0,1\} ^*} \to \{ r:{\{ - 1,0,1\} ^m},||r|{|_1} \leqslant \eta \} \eta r 的汉明值;{H_1}: {\{ 0,1\} ^*} \to \mathbb{Z}_2^{m \times m} \mathbb{Z}_{\text{2}}^{m \times m} 是一个对角线上为\{ 0,1\} 且其他为0的方阵;{H_2}:{\{ 0,1\} ^*} \to \mathbb{Z}{H_3}:{\{ 0,1\} ^*} \to {\{ 0,1\} ^\tau }, \tau \lt mH: {\{ 0,1\} ^*} \to B_k^m B_k^m 是长度为m且“1”的个数为k的二进制向量集,\mathcal{B} \mathcal{A} 发送公共参数Param = \{ m,n,q,{\boldsymbol{A}}, {\boldsymbol{mpk}},{H_1},{H_2},{H_3},h, H\} .

    3)注册询问. A可以进行①~④注册询问.

    ①用户注册询问. 初始化一个列表 R{Q_u} ,用来存储用户注册信息. \mathcal{A} 提交一个用户的身份 I{D_u} ,并发送给\mathcal{B} \mathcal{B} 选择 {{\boldsymbol{r}}_u}\mathop \in \limits^{\text{R}} D_\sigma ^m ,计算{{\boldsymbol{l}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{r}}_u} {{\boldsymbol{R}}_u} = {H_1}\left( {I{D_u},{{\boldsymbol{l}}_u}} \right) {{\boldsymbol{d}}_u} = {{\boldsymbol{r}}_u} + {{\boldsymbol{R}}_u}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u}\mathcal{B} \mathcal{A} 发送 (I{D_u},{\boldsymbol{p}}{{\boldsymbol{k}}_u}) ,并添加到 R{Q_u} . \mathcal{A} 可以做出多次询问.

    ②票据发行者注册询问. \mathcal{B} 选择{{\boldsymbol{r}}_{iss}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_{iss}} = {\boldsymbol{r}}_{iss}^{\text{T}}\cdot{\boldsymbol{A}}{{\boldsymbol{R}}_{iss}} ={H}_{1}(I{D}_{iss},{\boldsymbol{l}}_{iss}){{\boldsymbol{d}}_{iss}} = {{\boldsymbol{r}}_{iss}} + {{\boldsymbol{R}}_{iss}}\cdot {\boldsymbol{x}} \bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_{iss}} = {\boldsymbol{d}}\;_{iss}^{\text{T}}\cdot{\boldsymbol{A}}\mathcal{B} \mathcal{A} 发送 (I{D_{iss}},{\boldsymbol{p}}{{\boldsymbol{k}}_{iss}}) .

    ③票据验证者注册询问. 设Corrupt{u_v}是被\mathcal{A} 损坏的验证者身份组成的集合,\mathcal{A} 提交一个验证者身份 I{D_v} \notin \{ I{D_{v_0^*}},I{D_{v_1^*}}\} ,当 I{D_v} \in Corrupt{u_v} 时,\mathcal{A} \mathcal{B} 发送 (I{D_v},{\boldsymbol{p}}{{\boldsymbol{k}}_v}) ;当 I{D_v} \notin Corrupt{u_v} 时,\mathcal{B} 选择{{\boldsymbol{r}}_v}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_v} = {\boldsymbol{A}}\cdot{\boldsymbol{r}}_v^{}{{\boldsymbol{R}}_v} = {H_1}(I{D_v},{{\boldsymbol{l}}_v}){{\boldsymbol{d}}_v} = {{\boldsymbol{r}}_v}+ {{\boldsymbol{R}}_v}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_v} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_v}\mathcal{B} {\boldsymbol{p}}{{\boldsymbol{k}}_v} 发送给\mathcal{A} . \mathcal{A} 可以做出多次询问.

    ④中央验证者注册询问. \mathcal{B} 选择{{\boldsymbol{r}}_{cv}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_{cv}} = {\boldsymbol{A}}\cdot{\boldsymbol{r}}_{cv}^{} {{\boldsymbol{R}}_{cv}} = {H_1}(I{D_{cv}},{{\boldsymbol{l}}_{cv}}) {{\boldsymbol{d}}_{cv}} = {{\boldsymbol{r}}_{cv}} + {{\boldsymbol{R}}_{cv}}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_{cv}} ={\boldsymbol{A}}\cdot{{\boldsymbol{d}}_{cv}}\mathcal{B} \mathcal{A} 发送 \left( {I{D_{cv}},{\boldsymbol{p}}{{\boldsymbol{k}}_{cv}}} \right) .

    4)票据发行询问. \mathcal{A} 提交身份 I{D_u} \in R{Q_u} ,服务信息 {J_u} ,假名 P{S_u} = \{ ({{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v})|I{D_v} \in {J_u}\} ,如果等式{\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v} = {{\boldsymbol{p}}_v}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{p}}{{\boldsymbol{k}}_u}不成立,则\mathcal{B} 中止运行. 否则,\mathcal{B} 执行运算:\mathcal{B} 选择{{\boldsymbol{y}}_i}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{q}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{y}}_i},若 I{D_v} \in {J_u} \mathcal{B} 选择{\boldsymbol{t}},{\boldsymbol{k}}, {\boldsymbol{s}}, {{\boldsymbol{y}}_v}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算 {D_v} = {H_3}\left( {{{\boldsymbol{q}}_u},I{D_v}} \right) {{\boldsymbol{e}}_1} = {{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{s}}{e_2} = {\boldsymbol{pk}}_{cv}^{\text{T}}\cdot{\boldsymbol{s}} + I{D_v} \cdot \left\lfloor {\dfrac{q}{2}} \right\rfloor{\boldsymbol{r}} = h({\boldsymbol{pk}}_v^{\text{T}}\cdot{\boldsymbol{k}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}){{\boldsymbol{z}}_u} = {{\boldsymbol{d}}_{iss}}\cdot {{\boldsymbol{r}}^{\rm T}} + {\boldsymbol{k}}\cdot{{\boldsymbol{t}}^{ - {\text{1}}}}{s_v} = {H_2}({{\boldsymbol{p}}_v}|| {{\boldsymbol{q}}_v}||{{\boldsymbol{e}}_1}||{e_2}||{\boldsymbol{t}}||{\boldsymbol{r}}||{{\boldsymbol{z}}_u}||Text){{\boldsymbol{u}}_v} \;=\; {\boldsymbol{A}}\cdot{{\boldsymbol{y}}_v}{{\boldsymbol{c}}_v} = H(({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{u}}_v} + {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{s_v})\bmod q,{s_v}){{\boldsymbol{z}}_v} = {{\boldsymbol{u}}_v} + {{\boldsymbol{d}}_{iss}}\cdot{s_v}Ta{g_v} = ((f,{{\boldsymbol{p}}_v}, {{\boldsymbol{q}}_v}), ({\boldsymbol{t}}, {\boldsymbol{r}},{{\boldsymbol{z}}_u}),({{\boldsymbol{e}}_1},{e_2}),Text,({s_v},{{\boldsymbol{c}}_v},{{\boldsymbol{z}}_v}))S = {H_2} ({s_1}|| {s_2}||… || {s_{\left| {{J_u}} \right|}})\mathcal{B} 选择 {\boldsymbol{y}}\mathop \in \limits^{\text{R}} D_\sigma ^m ,计算{\boldsymbol{e}} = {\boldsymbol{A}}\cdot {\boldsymbol{y}}{\boldsymbol{c}} = H(({{\boldsymbol{A}}^{\text{T}}}\cdot {\boldsymbol{e}} + {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot S)\bmod q,S){\boldsymbol{z}} = {\boldsymbol{e}} + {{\boldsymbol{d}}_{iss}}\cdot S,票据{T_u} = \{ ({D_v}, Ta{g_v})| I{D_v} \in {J_u}\} \cup \{ (S,{\boldsymbol{c}},{\boldsymbol{z}})\}\mathcal{B} \mathcal{A} 返回 \left( {{{\boldsymbol{q}}_u},{T_u},Text} \right) . 设QI\mathcal{A} 查询的票证信息集合,初始为空,\mathcal{B} QI添加\{ P{S_u},{J_u},{T_u},{{\boldsymbol{y}}_i}\} \cup \{ {\boldsymbol{k}}|I{D_v} \in {J_u}\} .

    5)票据验证询问. \mathcal{B} 初始化一个表{T_v}\mathcal{A} 提交一个Ta{g_v}. 如果Ta{g_v} \in {T_v}\mathcal{B} 运行中止;否则,\mathcal{B} Ta{g_v}添加到{T_v}中,执行以下操作,如果Ta{g_v} \notin QI\mathcal{B} 运行中止,否则\mathcal{B} 检查 {D_v}\mathop = \limits^? {H_3}\left( {{{\boldsymbol{q}}_u},I{D_v}} \right) {\boldsymbol{r}}\mathop = \limits^? h({\boldsymbol{d}}_v^{\text{T}}\cdot({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{z}}_u} - {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\rm T}}) \cdot {\boldsymbol{t}}\bmod q,{\boldsymbol{p}}{{\boldsymbol{k}}_v}){s_v}\;\mathop = \limits^? \;{H_2}({{\boldsymbol{p}}_v}||{{\boldsymbol{q}}_v}||{{\boldsymbol{e}}_1}||{e_2}||{\boldsymbol{t}}||{\boldsymbol{r}}||{{\boldsymbol{z}}_u}||Text){{\boldsymbol{c}}_v}\;\mathop = \limits^? \; H ({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{z}}_v} \bmod q,{s_v}),如果以上等式成立,则\mathcal{B} I{D_v} 返回给\mathcal{A} ,否则返回“ \bot ”表示失败. 设QV为由\mathcal{A} 查询票据验证的列表,初始为空,\mathcal{B} QV中加入Ta{g_v}.

    6)票据追溯询问. \mathcal{A} 提交一个票据 {T_u} \mathcal{B} 执行4个操作.

    {P_u} = \{ \} ,对于每个 Ta{g_v} \in {T_u} :计算 {\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v} - {\boldsymbol{p}}_v^{}\cdot H(f,{\boldsymbol{p}}_v^{})I{D_v} = \dfrac{{{e_2} - {\boldsymbol{d}}_{cv}^{\text{T}}\cdot{{\boldsymbol{e}}_1}}}{{\left\lfloor {\dfrac{q}{2}} \right\rfloor }},根据 I{D_v} 检查{s_v}\mathop = \limits^?{H_2}({{\boldsymbol{p}}_v}||{{\boldsymbol{q}}_v}||{{\boldsymbol{e}}_1} ||{e_2}||{\boldsymbol{t}}||{\boldsymbol{r}}||{{\boldsymbol{z}}_u}||Text){{\boldsymbol{c}}_v}\mathop = \limits^? H({{\boldsymbol{A}}^{\text{T}}}\cdot{{\boldsymbol{z}}_v}\bmod q,{s_v}),如果满足等式,则 {P_u} = {P_u} \cup \{ I{D_v}\} ,否则终止;若不终止,则检查S\mathop = \limits^? {H_2}({s_1}||{s_2}|| …||{s_{\left| {{J_u}} \right|}}){\boldsymbol{c}}\mathop = \limits^? H({{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{z}}\bmod q,S). 如果以上等式成立,中央验证者可以根据用户的公钥 {\boldsymbol{p}}{{\boldsymbol{k}}_u} 来确定用户的服务信息 {J_u} = {P_u} ,否则追溯失败. 设QT为由\mathcal{A} 查询的票据跟踪信息组成的列表,初始为空. \mathcal{B} QT中加入 {T_u} .

    挑战. \mathcal{B} 选取{\boldsymbol{e}},{{\boldsymbol{y}}_1},{{\boldsymbol{y}}_2},{{\boldsymbol{y}}_3}\mathop \in \limits^{\text{R}} D\;_\sigma ^m f\mathop \in \limits^{\text{R}} \mathbb{Z}_p^{} ,计算{\boldsymbol{p}}_u^* = {\boldsymbol{A}}\cdot{\boldsymbol{e}}{\boldsymbol{q}}_u^* = {\boldsymbol{e}}\cdot{H_2}(f,{\boldsymbol{p}}_u^*) + {{\boldsymbol{d}}_u}{\boldsymbol{b}}_u^* = {\boldsymbol{A}}\cdot{{\boldsymbol{y}}_1}D_v^* = {H_3}({\boldsymbol{b}}_u^*,I{D_v}) {{\boldsymbol{r}}^{\boldsymbol{*}}} = {\boldsymbol{r}}_w^{\boldsymbol{*}} {\boldsymbol{z}}_u^* = {\boldsymbol{g}} s_v^* = {H_2}({\boldsymbol{p}}_u^*||{\boldsymbol{q}}_u^*||{\boldsymbol{e}}_1^*|| e_2^*||{{\boldsymbol{t}}^{\boldsymbol{*}}}||{{\boldsymbol{r}}^{\boldsymbol{*}}}||{{\boldsymbol{z}}^*}||Text){\boldsymbol{u}}_v^{\boldsymbol{*}} = {\boldsymbol{A}}\cdot{{\boldsymbol{y}}_2}{\boldsymbol{c}}_v^* = H(({{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{u}}_v^{\boldsymbol{*}} + {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot s_u^*)\bmod q,s_u^*){\boldsymbol{z}}_v^* = {\boldsymbol{u}}_v^{\boldsymbol{*}} + {{\boldsymbol{d}}_{iss}}\cdot s_u^*Tag_u^* = ((f,{\boldsymbol{p}}_u^*, {\boldsymbol{q}}_u^*),({\boldsymbol{e}}_1^*,e_2^*),({{\boldsymbol{t}}^*}{\boldsymbol{,}}{{\boldsymbol{r}}^{\boldsymbol{*}}},{\boldsymbol{z}}_u^*), Text,(s_v^*,{\boldsymbol{c}}_v^*, {\boldsymbol{z}}_v^*)) {S^*} = {H_2}(s_v^*) 以及{\boldsymbol{u}}_{}^{\boldsymbol{*}} = {\boldsymbol{A}}\cdot{{\boldsymbol{y}}_3}{\boldsymbol{c}}_{}^* = H(({{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{u}}_{}^* + {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot S_{}^*) \bmod q,S_{}^*) {\boldsymbol{z}}_{}^* = {\boldsymbol{u}}_{}^{\boldsymbol{*}} + {{\boldsymbol{d}}_{iss}}\cdot S_{}^*T_u^* = (D_v^*,Tag_u^*) \cup \{ {S^*}, {{\boldsymbol{c}}^*}, {{\boldsymbol{z}}^*}\}\mathcal{B} \mathcal{A} 发送 T_u^* .

    应答阶段. 和挑战阶段一样,但有限制①~③:① ({{\boldsymbol{r}}^{\boldsymbol{*}}},{{\boldsymbol{t}}^{\boldsymbol{*}}},{\boldsymbol{z}}_u^*) \notin QV ;② ({{\boldsymbol{r}}^{\boldsymbol{*}}},{{\boldsymbol{t}}^{\boldsymbol{*}}},{\boldsymbol{z}}_u^*) \notin QT ;③\mathcal{A} 可以自适应做出最多{\sigma _1}次票据发行询问、{\sigma _2}次票据验证询问、{\sigma _3}次票据追溯询问.

    输出. \mathcal{A} 输出它对w的猜测w',如果w' = w,则\mathcal{B} 输出b' = {\text{0}},否则输出b' = {\text{1}}.

    如果b = 0{\boldsymbol{g}} = {\boldsymbol{d}}_{iss}^{}\cdot{\boldsymbol{r}}{_w^{*\text{T}}} + {\boldsymbol{k}}\cdot{{\boldsymbol{t}}}^{* - 1},则 T_u^* 是个有效的票据,因此,\mathcal{A} \bigg|Pr[w' = w|b = 0] - \dfrac{1}{2}\bigg| \geqslant \varepsilon '\left( \ell \right)的概率输出w' = w. 而当w' = w时,\mathcal{B} 可以输出b' = 0,即\bigg|Pr[b' = b| b = 0] - \dfrac{1}{2}\bigg| \geqslant \varepsilon '\left( \ell \right).

    如果b = 1,则 {\boldsymbol{g}}\mathop \in \limits^{\text{R}} \mathbb{Z}_q^m T_u^* 中的元素是随机的,Pr[w' \ne w|b = 1] = \dfrac{1}{2}. 当w' \ne w时,\mathcal{B} 可以输出b' = 1,即 Pr[b' = b|b = 1] = \dfrac{1}{2} . 因此\mathcal{B} 解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题的优势:Adv_\mathcal{B}^{{\text{ISI}}{{\text{S}}_{q,n,m,\beta }}} = \bigg| \dfrac{1}{2} Pr[b' = b|b = 0] + \dfrac{1}{2}Pr[b' = b|b = 1] - \dfrac{1}{2} \bigg| \geqslant \dfrac{{\varepsilon '\left( \ell \right)}}{2}.

    已知 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 在格上是个困难问题,求解非零短向量是困难的,\mathcal{A} 无法以不可忽略的优势破坏不可链接性,本方案具有不可链接性.

    证毕.

    定理2. 如果存在一个敌手\mathcal{A} {\varepsilon _1}(\ell )的优势打破方案的不可伪造性,则可以构造一个算法\mathcal{B} ,它可以将\mathcal{A} 作为一个子程序,以不可忽略的优势解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    证明. 设\mathcal{A} 是攻击不可伪造性的PPT敌手,若\mathcal{A} 采用文献[19, 29-30]中的谕言机问询模式,在至多进行 p\left( {p \lt q} \right) 次票据发行询问下,以{\varepsilon _1}(\ell )的优势伪造1个有效的用户服务票据,则算法\mathcal{B} 可以以\mathcal{A} 作为子程序,以Adv_\mathcal{B}^{{\text{ISI}}{{\text{S}}_{q,n,m,\beta }}} = Pr[Ticket{\text{-}} Validating( Inpu{t_u}({\boldsymbol{s}}{{\boldsymbol{k}}_{{u^*}}},Ta{g_{{v^*}}},Param) \leftrightarrow Inpu{t_v}({\boldsymbol{s}}{{\boldsymbol{k}}_{{v^*}}},{\boldsymbol{p}}{{\boldsymbol{k}}_{{v^*}}},{\boldsymbol{p}}{{\boldsymbol{k}}_{{u^*}}}, Param)) \to ( \bot ,({\text{1}}, Ta{g_{{v^*}}}))] \geqslant \dfrac{{q - p}}{q}{\varepsilon _{\text{1}}}(\ell )的优势解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    1)系统设置.\mathcal{B} 选择 {\boldsymbol{A}}\mathop \in \limits^{\text{R}} \mathbb{Z}_q^{m \times m} {\boldsymbol{x}}\mathop \in \limits^{\text{R}} D_\sigma ^m ,计算{\boldsymbol{mpk}} = {\boldsymbol{A}}\cdot {\boldsymbol{x}} h:{\{ 0,1\} ^*} \to \{ r:{\{ - 1,0,1\} ^m},||r|{|_1} \leqslant \eta \} \eta r 的汉明值;{H_1}: {\{ 0,1\} ^*} \to \mathbb{Z}_2^{m \times m} \mathbb{Z}_{\text{2}}^{m \times m} 是个对角线上为\{ 0,1\} 而其他为0的方阵; {H_2}:{\{ 0,1\} ^*} \to \mathbb{Z} {H_3}:{\{ 0,1\} ^*} \to {\{ 0,1\} ^\tau }, \tau \lt mH:\{ 0, 1\} ^* \to B_k^m B_k^m 是长度为m且“1”的个数为k的二进制向量集,\mathcal{B} \mathcal{A} 发送公共参数Param = \{ m,n,q,{\boldsymbol{A}},MPK, {H_1},{H_2},{H_3},h, H\} .

    2)注册询问. \mathcal{A} 可以做出①~④注册询问.

    ①用户注册询问. 初始化一个列表 R{Q_u} ,用来存储用户注册信息. \mathcal{A} 提交一个用户的身份 I{D_u} ,并发送给\mathcal{B} \mathcal{B} 选择{{\boldsymbol{r}}_u}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{r}}_u} {{\boldsymbol{R}}_u} = {H_1}\left( {I{D_u},{{\boldsymbol{l}}_u}} \right) {{\boldsymbol{d}}_u} = {{\boldsymbol{r}}_u} + {{\boldsymbol{R}}_u}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u}\mathcal{B} \mathcal{A} 发送 (I{D_u}, {\boldsymbol{p}}{{\boldsymbol{k}}_u}) ,并添加到 R{Q_u} . \mathcal{A} 可以做出多次询问.

    ②票据发行者注册询问. \mathcal{B} 选择{{\boldsymbol{r}}_{iss}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_{iss}} = {\boldsymbol{r}}_{iss}^{\text{T}}\cdot{\boldsymbol{A}}{{\boldsymbol{R}}_{iss}}={H}_{1}(I{D}_{iss},{{\boldsymbol{l}}_{iss}}){{\boldsymbol{d}}_{iss}} = {{\boldsymbol{r}}_{iss}} + {{\boldsymbol{R}}_{iss}} \cdot {\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_{iss}} = {\boldsymbol{d}}_{iss}^{\text{T}}\cdot{\boldsymbol{A}}\mathcal{B} \mathcal{A} 发送 (I{D_{iss}},{\boldsymbol{p}}{{\boldsymbol{k}}_{iss}}) .

    ③票据验证者注册询问. \mathcal{A} 选择一个身份 I{D_v} 发给\mathcal{B} \mathcal{B} 选择{{\boldsymbol{r}}_v}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_v} = {\boldsymbol{A}}\cdot{\boldsymbol{r}}_v^{} {{\boldsymbol{R}}_v} = {H_1}(I{D_v},{{\boldsymbol{l}}_v}) {{\boldsymbol{d}}_v} = {{\boldsymbol{r}}_v} + {{\boldsymbol{R}}_v}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_v} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_v}\mathcal{B} \mathcal{A} 发送 {\boldsymbol{p}}{{\boldsymbol{k}}_v} . \mathcal{A} 可以做出多次询问.

    ④中心验证者注册询问. \mathcal{A} 选择一个身份 I{D_{cv}} 发给\mathcal{B} \mathcal{B} 选择{{\boldsymbol{r}}_{cv}}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_{cv}} = {\boldsymbol{A}}\cdot{\boldsymbol{r}}_{cv}^{}{{\boldsymbol{R}}_{cv}} = {H_1} (I{D_{cv}}, {{\boldsymbol{l}}_{cv}}){{\boldsymbol{d}}_{cv}} = {{\boldsymbol{r}}_{cv}} + {{\boldsymbol{R}}_{cv}}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_{cv}} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_{cv}}\mathcal{B} \mathcal{A} 发送\left( I{D_{cv}},{\boldsymbol{p}}{{\boldsymbol{k}}_{cv}} \right).

    3)票据发行询问. \mathcal{A} 提交一个身份 I{D_u} \in R{Q_u} ,一组服务信息 {J_u} ,假名P{S_u} = \{ ({{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v})|I{D_v} \in {J_u}\},如果等式{\boldsymbol{A}}\cdot{{\boldsymbol{q}}_v} = {{\boldsymbol{p}}_v}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{p}}{{\boldsymbol{k}}_u}不成立,则\mathcal{B} 中止运行; 否则,\mathcal{B} 使用4.2节中的方法产生一个票据{T_u} = \{ ({D_v},Ta{g_v})|I{D_v} \in {J_u}\} \cup \{ (S,{\boldsymbol{c}},{\boldsymbol{z}})\}\mathcal{B} \mathcal{A} 返回 \left( {{{\boldsymbol{q}}_u},{T_u}} \right) . 设QI\mathcal{A} 查询的票证信息的集合,初始为空,\mathcal{B} QI添加 ({{\boldsymbol{q}}_u},{T_u}) . \mathcal{A} 至多进行 p\left( {p \lt q} \right) 次票据发行询问.

    4)伪造阶段. \mathcal{A} 输出一张票 T_u^* = \{ (D_u^*,{\boldsymbol{p}}_u^*,{\boldsymbol{q}}_u^*,{\boldsymbol{e}}_1^*, e_2^*,{\boldsymbol{t}}^{\boldsymbol{*}}, {{\boldsymbol{r}}^{\boldsymbol{*}}},{\boldsymbol{z}}_u^*{\boldsymbol{,}}Text,s_v^*,{\boldsymbol{c}}_v^*,{\boldsymbol{z}}_v^*)|I{D_{{v^*}}} \in {J_{{u^*}}}\} \cup \{ {S^*},{{\boldsymbol{c}}^*},{{\boldsymbol{z}}^*}\},且 T_u^* \notin QI ,若\mathcal{A} 以不可忽略的优势 {\varepsilon _1}(\ell ) 成功伪造1个票据 T_u^* ,那么 ({{\boldsymbol{t}}^{\boldsymbol{*}}},{{\boldsymbol{r}}^{\boldsymbol{*}}},{\boldsymbol{z}}_u^*) 满足{\boldsymbol{d}}\;_v^{\text{T}}\cdot({{\boldsymbol{A}}^{\text{T}}}\cdot{\boldsymbol{z}}_u^* \;-\; {\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}})\cdot{{\boldsymbol{t}}^{\boldsymbol{*}}} \;=\; ({\boldsymbol{pk}}_v^{\text{T}}\cdot{\boldsymbol{z}}_u^* - {\boldsymbol{d}}\;_v^{\text{T}}\cdot{\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}})\cdot{{\boldsymbol{t}}^{\boldsymbol{*}}}\cdot \bmod q,即 ({\boldsymbol{pk}}_v^{\text{T}}\cdot{\boldsymbol{z}}_u^* - {\boldsymbol{d}}_v^{\text{T}}\cdot{\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}}) \cdot{{\boldsymbol{t}}^{\boldsymbol{*}}}\cdot {({{\boldsymbol{t}}^{\boldsymbol{*}}})^{ - 1}} - {\boldsymbol{pk}}_v^{\text{T}}\cdot{\boldsymbol{z}}_u^* = - {\boldsymbol{d}}_v^{\text{T}}\cdot{\boldsymbol{pk}}_{iss}^{\text{T}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}} =- {\boldsymbol{pk}}_v^{\text{T}}\cdot{{\boldsymbol{d}}_{iss}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}},记W = - {\boldsymbol{pk}}_v^{\text{T}}\cdot {{\boldsymbol{d}}_{iss}}\cdot {{\boldsymbol{r}}^{\boldsymbol{*}}},此时\left\| {{{\boldsymbol{d}}_{iss}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}}} \right\| \leqslant \beta,则{{\boldsymbol{d}}_{iss}}\cdot{{\boldsymbol{r}}^{\boldsymbol{*}}}是关于 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 的解. \mathcal{B} 以优势 Adv_\mathcal{B}^{{\text{ISI}}{{\text{S}}_{q,n,m,\beta }}} \;=\; Pr[Ticket {\text{-}} Validating(Inpu{t_u}({\boldsymbol{s}}{{\boldsymbol{k}}_{{u^*}}}, Ta{g_{{v^*}}},\;Param) \leftrightarrow Inpu{t_{cv}}({\boldsymbol{s}}{{\boldsymbol{k}}_{{v^*}}},{\boldsymbol{p}}{{\boldsymbol{k}}_{{v^*}}}, {\boldsymbol{p}}{{\boldsymbol{k}}_{{u^*}}},\;Param)) \;\to\;( \bot , \;({\text{1}},\;Ta{g_{{v^*}}}))]\; \geqslant\; \dfrac{{q - p}}{q}\;{\varepsilon _{\text{1}}}\;(\ell )\; 解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    已知 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 是格上的一个困难问题,求解非零短向量的优势是可忽略的,\mathcal{A} 无法以不可忽略的优势伪造认证标签,本方案具有不可伪造性.

    证毕.

    定理3. 如果存在一个敌手\mathcal{A} \varepsilon (\ell )的优势破坏方案的可追溯性,则可以构造一个算法\mathcal{B} ,它可以将\mathcal{A} 作为一个子程序,解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} {\text{SI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    证明. 设\mathcal{A} 是攻击可追溯性的PPT敌手,若\mathcal{A} 在至多进行 k\left( {k \lt q} \right) 次票据发行询问后,以\varepsilon (\ell )的优势伪造一个有效的用户服务票据且不被追溯,则算法\mathcal{B} 可以以\mathcal{A} 作为子程序,以 \dfrac{{q - k}}{{2q}}\varepsilon (\ell ) 的优势解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 或以 \dfrac{{\varepsilon (\ell )}}{2} 的优势解决 {\text{SI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    系统设置和注册询问中的用户注册询问、票据发行者注册询问以及中央验证者注册询问过程和4.3节一致. 在票据验证者注册询问中,\mathcal{A} 选择一个身份 I{D_v} 发给\mathcal{B} \mathcal{B} \mathcal{A} 一起执行以下运算,选择{{\boldsymbol{r}}_v}\mathop \in \limits^{\text{R}} D\;_\sigma ^m,计算{{\boldsymbol{l}}_v} = {\boldsymbol{A}}\cdot{\boldsymbol{r}}_v^{} {{\boldsymbol{R}}_v} = {H_1}(I{D_v},{{\boldsymbol{l}}_v}) {{\boldsymbol{d}}_v} = {{\boldsymbol{r}}_v} + {{\boldsymbol{R}}_v}\cdot{\boldsymbol{x}}\bmod q{\boldsymbol{p}}{{\boldsymbol{k}}_v} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_v}. \mathcal{A} 可做出多次询问.

    1)票据发行询问. \mathcal{A} 提交一个身份 I{D_u} \in R{Q_u} ,一组服务信息 {J_u} ,假名 P{S_u} = \{ ({{\boldsymbol{p}}_v},{{\boldsymbol{q}}_v})|I{D_v} \in {J_u}\} ,如果等式{\boldsymbol{A}}\cdot {{\boldsymbol{q}}_v} = {{\boldsymbol{p}}_v}\cdot{H_2}(f,{{\boldsymbol{p}}_v}) + {\boldsymbol{p}}{{\boldsymbol{k}}_u}不成立,则\mathcal{B} 中止运行; 否则,\mathcal{B} 使用4.2节中的方法产生一个票据{T_u} = \{ ({D_v},Ta{g_v})| I{D_v} \in {J_u}\} \cup \{ (S,{\boldsymbol{c}},{\boldsymbol{z}})\}\mathcal{B} {T_u} 返回给\mathcal{A} . 设QI\mathcal{A} 查询的票证信息的集合,初始为空, \mathcal{B}QI中添加 ({{\boldsymbol{q}}_u},{T_u}) \mathcal{A} 至多进行 k\left( {k < q} \right) 次票据发行查询.

    2)伪造阶段. \mathcal{A} 输出一张票据T_u^* = \{ (D_u^*,{\boldsymbol{p}}_v^*, {\boldsymbol{q}}_v^*, {\boldsymbol{e}}_1^*, e_2^*,{{\boldsymbol{t}}^*},{{\boldsymbol{r}}^{\boldsymbol{*}}},{\boldsymbol{z}}_u^*,Text,s_v^*,{\boldsymbol{c}}_v^*,{\boldsymbol{z}}_v^*)| I{D_{{v^*}}} \in {J_{{u^*}}}\} \cup \{ {S^*},{{\boldsymbol{c}}^*},{{\boldsymbol{z}}^*}\} . 如果 T_u^* 包含了多个用户的公钥,则票据没有正确生成,\mathcal{B} 中止运行. 如果\mathcal{B} 未中止,则考虑2种方式:①伪造者输出了一个票据 T_u^* ,它至少包含1个新的假名 ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v') ,同时\mathcal{A} 查询过的任何票据中不包括假名 ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v') . ②伪造者输出一个票据 T_u^* ,里面含有被\mathcal{A} 查询到的 T_u^{} \in QI 中的假名,但是追溯该票据时,追溯到用户 u' ,此时\mathcal{A} 并不知道用户 u' 的私钥 {\boldsymbol{x}}' ,令用户 u' 的私钥为 {\boldsymbol{x}}' .

    ①如果存在一个假名 ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v') \in {T_{{u^*}}} ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v') \notin QI Tag_v' = ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v',{\boldsymbol{e}}_1',e_2',{{\boldsymbol{t}}'},{{\boldsymbol{r}}'},{\boldsymbol{z}}_u',Test,s_v',{\boldsymbol{c}}_v',{\boldsymbol{z}}_v') \mathcal{A} 伪造一个对 s_v' = {H_2}({\boldsymbol{p}}_v'||{\boldsymbol{q}}_v'||{\boldsymbol{e}}_1'||e_2'||{{\boldsymbol{t}}'}||{{\boldsymbol{r}}'}||{\boldsymbol{z}}_u'||Text) 的签名 ({\boldsymbol{c}}_v',{\boldsymbol{z}}_v') ,因此\mathcal{B} 可以使用4.3节中的方法去解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题.

    ②如果所有的 ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v') \in {T_{{u^*}}} ({\boldsymbol{p}}_v',{\boldsymbol{q}}_v') \in QI . 最后票据追溯的时候,计算出{\boldsymbol{p}}{{\boldsymbol{k}}_u} = {\boldsymbol{A}}\cdot{{\boldsymbol{d}}_u} = {{\boldsymbol{l}}_{u'}} + {{\boldsymbol{R}}_{u'}}\cdot{\boldsymbol{mpk}} = {\boldsymbol{A}}\cdot {{\boldsymbol{d}}_{u'}} ,即{\boldsymbol{A}}\left( {{{\boldsymbol{d}}_u} - {{\boldsymbol{d}}_{u'}}} \right) = {\textit{0}}\bmod q. 由于 {{\boldsymbol{d}}_u} \ne {{\boldsymbol{d}}_{u'}} ,且||{{\boldsymbol{d}}_u}|{|_\infty },||{{\boldsymbol{d}}_{u'}}|{|_\infty } \leqslant \dfrac{\beta }{2},所以 {{\boldsymbol{d}}_u} - {{\boldsymbol{d}}_{u'}} \ne {\textit{0}} \bmod q {{\boldsymbol{d}}_u} - {{\boldsymbol{d}}_{u'}} 是关于 {\text{SI}}{{\text{S}}_{q,n,m,\beta }} 的解.

    \mathcal{A} 可采用①或②去破坏可追溯性,此时以 \dfrac{{q - k}}{{2q}}\varepsilon (\ell ) 的优势解决 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题或以 \dfrac{{\varepsilon (\ell )}}{2} 的优势解决 {\text{SI}}{{\text{S}}_{q,n,m,\beta }} 搜索问题. 因此, \mathcal{B}的优势为\varepsilon \left( \ell \right) = \max \left\{ \dfrac{{q - k}}{{2q}}\varepsilon (\ell ),\dfrac{{\varepsilon (\ell )}}{2}\right\}.

    已知 {\text{ISI}}{{\text{S}}_{q,n,m,\beta }} {\text{SI}}{{\text{S}}_{q,n,m,\beta }} 在格上是个困难问题,求解非零短向量是困难的,\mathcal{A} 无法以不可忽略的优势破坏可追溯性,故方案具有可追溯性.

    证毕.

    本节对方案安全性进行分析,表1列出本文方案与文献[4,7,19]方案在匿名性、可追溯性、不可链接性、抗量子性以及各方案中票据发行算法的时间复杂度对比.

    表  1  本文方案与文献[4,7,19]方案的安全性能对比
    Table  1.  The Safety Performance Comparison of the Proposed Scheme and the Schemes of References [4,7,19]
    方案困难问题匿名性可追溯性不可链接性抗量子性时间复杂度
    文献[4]方案大整数分解O({\log ^3}m)
    文献[7]方案切比雪夫混沌映射的假设O({\kappa ^2}{\text{lo}}{{\text{g}}^2}m)
    文献[19]方案离散对数 O({\log ^2}m)
    本文方案ISISO(m\log m)
    下载: 导出CSV 
    | 显示表格

    文献[4]引入带有随机数的单向散列函数来解决Hsu等人[31]方案中的假冒攻击,文献[4]方案中票据验证者可以通过使用扩展欧几里德算法,以高概率恢复出用户的认证凭证,并利用RSA签名方案和非交互零知识证明方案,实现用户的身份认证与票据的不可伪造性. 因此文献[4]方案不具备可追溯性和用户服务的不可链接性,不可以抵抗已知的量子算法攻击.

    文献[7]中的方案利用切比雪夫混沌映射的半群性和交换性来隐藏用户的真实身份,但多个票据验证者串通起来时可以分析用户的服务请求,并且文献[7]方案在设计时未考虑因为欺诈行为的追溯问题[32],其不具备匿名性、可追溯性、不可链接性,不可以抵抗已知的量子算法攻击.

    文献[19]中的方案采用公钥证书技术,使中央验证者在追溯时获得用户公钥来揭示用户身份,并追溯出用户的所有访问服务,该方案实现了可追溯性与不可链接性. 该方案安全性是基于离散对数困难假设,不能抵抗已知的量子算法攻击.

    本文方案中用户在请求票据时,通过为指定票据验证者生成假名来实现其匿名性,保证用户的匿名性与服务请求的不可链接性. 利用格上基于身份的密码体制来代替文献[19]中的公钥证书技术,简化了用户身份管理开销. 在追溯阶段,可信第三方通过计算出用户公钥来揭示用户身份,并追溯出整个服务请求. 同时票据发行阶段作为单点登录方案的重要一步,票据发行算法的时间复杂度大小关乎着方案的实际运行效率. 本方案的安全性基于ISIS困难假设,在参数m = {\text{512}} b,q = {\text{783361}} \approx {{\text{2}}^{{\text{20}}}}mq定义见1.1节)下即可达到与AES-128bit相当的安全量级. 根据NIST对称加密标准所提供的安全强度范围分类,在AES-128bit安全量级下进行对比方案参数的实例化,文献[4,7,19]中的参数分别设置为m = {\text{3\;200}} b(m为文献[4]中的模数),\kappa = {\text{8}}\;{\text{b}}、m = {\text{3\;072}}\;{\text{b}}\kappa 为文献[7]中安全Hash函数的输出长度,m为文献[7]中的模数)和m = {\text{256}} b(m为文献[19]中群的阶数)[33]. 由表1可知,在所设参数下,所提方案与对比方案[4,7,19]的时间复杂度分别约为O({{\text{2}}^{{\text{12}}{\text{.17}}}}),O({{\text{2}}^{{\text{34}}{\text{.9}}}}),O({{\text{2}}^{{\text{39}}{\text{.17}}}}),O({{\text{2}}^{{\text{16}}}}). 可见,本方案在提供整体安全性的同时,具有较低时间复杂度.

    本文方案是基于格上困难问题构造的单点登录方案,结合格上ISIS困难问题求解以及未来数年中量子计算机的发展,为满足方案安全强度的要求,在表2中提供3组参数,并进一步使用格基约化算法BKZ[34]对本文方案进行量子安全强度测试,在这3组参数下,方案可分别达到112 b,230 b,292 b的安全度.

    表  2  不同参数设置下的安全强度
    Table  2.  Security Strength Under Different Parameter Settings
    参数设置安全参数n维度m标准差 \sigma 模数qHermit 因子量子安全强度/b
    PARMS Ⅰ825631680010734796811.004998112
    PARMS Ⅱ851231680010734796811.002707230
    PARMS Ⅲ864031680010734796811.002220292
    下载: 导出CSV 
    | 显示表格

    在满足一定安全等级的情况下,将本文方案在Windows10系统、Intel® Core i5-7200U CPU @2.50 GHz处理器和8.00GB运行内存下,利用Sage数学库,采用基于SageMath的Python进行方案实现与性能评估. 表3给出了本文方案在PARMS Ⅰ,PARMS Ⅱ,PARMS Ⅲ这3组参数下的时间开销,所显示的时间是以1000次运算的平均值统计. 下面主要分析PARMS Ⅱ,PARMS Ⅲ参数下,即m = 512和m = 640这2种情况下各阶段的时间开销.

    表  3  本文方案的计算开销分析
    Table  3.  Calculation Cost Analysis of Our Proposed Scheme ms
    阶段 PARMS ⅠPARMS ⅡPARMS Ⅲ
    系统初
    始化
    0.933.855.98
    公私钥
    提取
    产生票据发行者公私钥5.9321.6234.08
    产生指定票据验证者公私钥5.0821.6636.76
    产生中央验证者公私钥5.5220.8836.69
    产生用户公私钥5.7220.3933.70
    用户注册 5.8023.8132.72
    票据发行
    (用户进行4个服务请求)
    27.7174.89108.34
    票据验证5.2616.0824.11
    追溯5.2616.0624.10
    下载: 导出CSV 
    | 显示表格

    1)在实现整个匿名单点登录方案过程中,系统初始化、各参与方公私钥提取以及每个用户注册阶段只需进行1次操作. 在各参与者公私钥提取阶段,对于PKG生成的私钥,用户要通过验证等式来确保私钥是正确生成的,因此,此阶段在m = 512和m = 640时,分别需要大概21 ms和36 ms.

    2)当m = 512时,假如票据发行阶段用户一次性请求4个服务,整个过程大概需要74.89 ms. 其中7.4 ms用来生成服务请求,48.55 ms用来生成票据,2.57 ms用来验证票据是否有效. 即使将m增加到640,整个发行阶段也只需要108.34 ms. 同时,用户可以预先计算它的票据请求,而且票据发行者可并行验证用户身份的合法性,从而将与票据发行者的交互时间缩短14.78 ms(m = 512)或22.46 ms(m = 640). 此外,发行者也可以预先计算一些值作为票据发行过程的一部分(例如 {D_v},{{\boldsymbol{e}}_1},{e_2} 等部分,参见图2). 这样可将票据生成阶段减少5.15 ms(m=512)或6.64 ms(m = 640). 经算法优化后,整个过程大概需要54.96 ms(m = 512)或79.14 ms(m = 640).

    3)在票据验证阶段,用户需要向指定票据验证者提交自己的认证标签以获得想要的服务. 此时,指定票据验证者需要验证指定验证者签名、单向Hash函数以及对认证标签与票据的签名,若全部验证通过,则授权用户访问服务,最终指定票据验证者验证单个标签,其过程只需要大约16.08 ms或24.11 ms(m = 512或m = 640).

    4)必要时,中央验证者才执行票据追溯算法. 此时中央验证者在进行简单的向量运算后,揭示用户的真实身份并追溯出用户的整个服务请求. 由于此阶段的主要运算过程与票据验证阶段相似,因此这2个阶段的计算开销大体相近.

    为进一步评估方案效率,表4列出方案各阶段所产生的存储开销与通信开销. 系统初始化阶段与公私钥提取阶段会产生方案所需的公共参数与各参与方的公私钥,各参与方私钥作为要保密的信息,需要进行本地存储. 由表4可知,在给定的3组参数下,参与方的本地存储开销最大为10.53KB.

    表  4  方案存储开销与通信开销分析
    Table  4.  Analysis of Storage Cost and Communication Cost of Scheme ms
    阶段存储开销与通信开销PARMS ⅠPARMS ⅡPARMS Ⅲ
    系统初始化系统公开参数长度/KB7.369.8312.13
    公私钥提取阶段各参与方的公钥长度/KB5.2311.6215.47
    各参与方的私钥长度/KB4.618.2210.53
    用户注册阶段用户通信开销/KB9.8119.0323.64
    票据发行阶段(用户
    进行4个服务请求
    用户通信开销/KB9.2318.4523.06
    票据发行者通信开销/KB167.31336.31420.8
    票据大小/KB162.7327.09409.28
    票据验证阶段票据验证者通信开销/B161818
    用户通信开销/KB46.0992.17115.21
    下载: 导出CSV 
    | 显示表格

    用户注册阶段、票据验证阶段和票据发行阶段需要2个参与方进行协同交互.在用户注册阶段,用户需要传输对身份I{D_u}加密所产生的密文. 票据验证阶段,指定票据验证者和用户分别需要发送身份I{D_v}和票据标签Ta{g_v}. 在票据发行阶段,用户给票据发行者发送一次性假名与服务请求,票据发行者再根据用户需求生成服务票据,此过程需要较大的通信开销. 在表4的3组参数下,方案各阶段的最大通信开销分别是167.31 KB,336.31 KB,420.8 KB,其中所生产的用户服务票据约占票据发行者通信开销的97%.

    本文基于ISIS困难假设,结合格上基于身份的密码体制与匿名认证技术,构造了一个可追溯的匿名单点登录方案,解决了同类方案中公钥证书管理问题以及因用户匿名访问服务而无法追责的问题. 根据方案在不同参数设置下的量子安全强度可知,其具备抗量子算法攻击的特点,同时在运行时间和通信开销上满足应用实施的需求. 当指定票据验证者发生单点故障时,考虑在票据发行阶段引入代理重加密技术,在不改变用户服务票据情况下,将用户重定向到代理票据验证者并继续访问服务,是未来的一个研究方向.

    作者贡献声明:汤永利负责方案构造与证明、数据整理与实验分析;李英负责方案构造与证明,完成论文撰写与修改;赵宗渠负责方案构造与证明;李星宇负责数据整理与实验分析;王瀚博负责论文撰写与修改.

  • 图  1   攻击性模因解释生成示例

    Figure  1.   Example of interpretive generation of offensive memes

    图  2   所提模型的示意图

    Figure  2.   Illustration of the proposed model

    图  3   GPT-3.5解释增强示例

    Figure  3.   Augmenting explanatory examples with GPT-3.5

    图  4   指令集

    Figure  4.   Instruction set

    图  5   举例说明3种解释的比较

    Figure  5.   Comparison of three types of explanations with examples

    表  1   数据集统计信息

    Table  1   Statistical Information of the Datasets

    数据集 模因数量 数据集说明 隐喻标签 模因解释 是否攻击性模因
    HatReD[5] 3228 仇恨模因解释生成
    MemeCap[19] 6384 模因解释生成
    MET-Meme[34] 10045 模因隐喻分类 有(增强后)
    Propaganda[35] 950 模因隐喻分类 有(增强后)
    HarMeme[36] 3544 有害模因分类 有(增强后)
    Sarcasm Meme[37] 24635 讽刺模因分类 有(增强后)
    下载: 导出CSV

    表  2   数据集划分结果

    Table  2   Dataset Division Results

    数据集 训练集 测试集
    HatReD2982246
    MemeCap63840
    MET-Meme100450
    Propaganda9500
    HarMeme35440
    Sarcasm Meme246350
    总计48540246
    下载: 导出CSV

    表  3   自动评估实验结果

    Table  3   Experimental Results from Automated Evaluations

    模型 N-gram匹配 基于BERTScore的评估
    类别 编码器 解码器 BLEU ROUGE-L BERT-P BERT-R BERT-F
    文本模型 RoBERTa-base GPT2-base 0.068 0.222 0.112 0.327 0.218
    RoBERTa-base RoBERTa-base 0.177 0.389 0.508 0.453 0.480
    T5-large T5-large 0.190 0.392 0.485 0.473 0.479
    图片
    -文本模型
    VisualBERT GPT2-base 0.065 0.219 0.100 0.342 0.219
    VisualBERT RoBERTa-base 0.179 0.391 0.499 0.449 0.474
    VL-T5 VL-T5 0.180 0.378 0.472 0.409 0.446
    本文方法 0.098 0.250 0.689 0.668 0.677
    本文方法与其他方法的差值 −0.092 −0.142 0.181 0.195 0.197
    注:加粗表示最优结果,下划线表示次优结果.
    下载: 导出CSV

    表  4   GPT-4评估实验结果

    Table  4   Experimental Results from GPT-4 Evaluations

    方法 流畅度 正确性 背景分析能力 隐喻识别能力 客观性
    本文方法 4.90 3.74 4.42 3.86 4.74
    T5-large 4.70 2.08 2.34 2.48 4.32
    HatReD人工标注答案 4.80 4.66 3.22 3.00 4.90
    注:加粗表示最优结果,下划线表示次优结果.
    下载: 导出CSV

    表  5   消融实验GPT-4评估结果

    Table  5   Ablation Experimental Results from GPT-4 Evaluations

    方法 流畅度 正确性 背景分析能力 隐喻识别能力 客观性
    本文方法 4.90 3.74 4.42 3.86 4.74
    w/o 数据增强 4.82 2.46 2.52 2.94 4.48
    w/o 隐喻数据集 4.86 3.12 3.74 3.24 4.36
    w/o有害数据集 4.82 2.94 3.36 3.18 4.78
    注:加粗表示最优结果,下划线表示次优结果.
    下载: 导出CSV

    表  6   消融实验自动评估结果

    Table  6   Ablation Experimental Results from Automated Evaluations

    方法 N-gram匹配 基于BERTScore的评价
    BLEU ROUGE-L BERT-P BERT-R BERT-F
    本文方法 0.098 0.250 0.689 0.668 0.677
    w/o 数据增强 0.108 0.335 0.604 0.569 0.583
    w/o 隐喻数据集 0.090 0.318 0.661 0.649 0.653
    w/o有害数据集 0.074 0.279 0.581 0.635 0.604
    注:加粗表示最优结果,下划线表示次优结果.
    下载: 导出CSV

    表  7   攻击性模因分类任务结果

    Table  7   Experimental Results of Offensive Memes Classification Task %

    数据集 无生成原因 有生成原因
    ACC AUROC ACC AUROC
    HateMeme 33.4 48.5 48.0 50.6
    下载: 导出CSV

    表  8   在未见数据集上的实验结果

    Table  8   Experimental Results on Unseen Data

    方法流畅度正确性背景分析能力隐喻识别能力客观性
    本文方法4.903.544.264.124.85
    T5-large4.322.482.732.784.60
    下载: 导出CSV
  • [1] 虎嵩林,赵军,唐杰,等. 虚假信息检测专题前言[J]. 计算机研究与发展,2021,58(7):1351−1352 doi: 10.7544/issn1000-1239.2021.qy0701

    Hu Songlin, Zhao Jun, Tang Jie, et al. Preface to the special issue on fake information detection[J]. Journal of Computer Research and Development, 2021, 58(7): 1351−1352 (in Chinese) doi: 10.7544/issn1000-1239.2021.qy0701

    [2]

    Kiela D, Firooz H, Mohan A, et al. The hateful memes challenge: Detecting hate speech in multimodal memes[J]. Advances in Neural Information Processing Systems, 2020, 33: 2611−2624

    [3]

    Zhang Linhao, Jin Li, Sun Xian, et al. TOT: Topology-aware optimal transport for multimodal hate detection[C]//Proc of the AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI, 2023, 37(4): 4884−4892

    [4]

    Cao Rui, Hee MS, Kuek A, et al. Pro-Cap: Leveraging a frozen vision-language model for hateful meme detection[C]//Proc of the 31st ACM Int Conf on Multimedia. New York: ACM, 2023: 5244−5252

    [5]

    Hee M S, Chong W H, Lee R K W. Decoding the underlying meaning of multimodal hateful memes[C]//Proc of the 32nd Int Joint Conf on Artificial Intelligence. Freiburg: IJCAI, 2023: 5995−6003

    [6]

    Sharma S, Agarwal S, Suresh T, et al. What do you MEME? Generating explanations for visual semantic role labelling in memes[C]//Proc of the AAAI Conf on Artificial Intelligence. Washington, DC: AAAI, 2023, 37(8): 9763−9771

    [7]

    Scott K. Memes as multimodal metaphors: A relevance theory analysis[J]. Pragmatics & Cognition, 2021, 28(2): 277−298

    [8]

    Pramanick S, Sharma S, Dimitrov D, et al. MOMENTA: A multimodal framework for detecting harmful memes and their targets[C]//Findings of the Association for Computational Linguistics: EMNLP 2021. Stroudsburg, PA: ACL, 2021: 4439−4455

    [9]

    Zhu Ron. Enhance multimodal Transformer with external label and in-domain pretrain: Hateful meme challenge winning solution[J]. arXiv preprint, arXiv: 2012.08290, 2020

    [10]

    Yang Chuanpeng, Zhu Fuqing, Liu Guihua, et al. Multimodal hate speech detection via cross-domain knowledge transfer[C]//Proc of the 30th ACM Int Conf on Multimedia. New York: ACM, 2022: 4505−4514

    [11]

    Lee R K W, Cao Rui, Fan Ziqing, et al. Disentangling hate in online memes[C]//Proc of the 29th ACM Int Conf on Multimedia. New York: ACM, 2021: 5138−5147

    [12]

    Velioglu R, Rose J. Detecting hate speech in memes using multimodal deep learning approaches: Prize-winning solution to hateful memes challenge[J]. arXiv preprint, arXiv: 2012.12975, 2020

    [13]

    Yin Shukang, Fu Chaoyou, Zhao Sirui, et al. A survey on multimodal large language models[J]. arXiv preprint, arXiv: 2306.13549, 2023

    [14]

    Gupta T, Kembhavi A. Visual programming: Compositional visual reasoning without training[C]//Proc of the IEEE/CVF Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2023: 14953−14962

    [15]

    Shao Zhenwei, Yu Zhou, Wang Meng, et al. Prompting large language models with answer heuristics for knowledge-based visual question answering[C]//Proc of the IEEE/CVF Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2023: 14974−14983

    [16]

    Cao Rui, Lee R K W, Chong W H, et al. Prompting for multimodal hateful meme classification[C]//Proc of the 2022 Conf on Empirical Methods in Natural Language Processing. Stroudsburg, PA: ACL, 2022: 321−332

    [17]

    Liu Yinhan, Ott M, Goyal N, et al. RoBERTa: A robustly optimized BERT pretraining approach[J]. arXiv preprint, arXiv: 1907.11692, 2019

    [18]

    Ji Junhui, Ren Wei, Naseem U. Identifying creative harmful memes via prompt based approach[C]//Proc of the ACM Web Conf 2023. New York: ACM, 2023: 3868−3872

    [19]

    Hwang E J, Shwartz V. MemeCap: A dataset for captioning and interpreting memes[J]. arXiv preprint, arXiv: 2305.13703, 2023

    [20]

    Zhu Deyao, Chen Jun, Shen Xiaoqian, et al. MiniGPT-4: Enhancing vision-language understanding with advanced large language models[J]. arXiv preprint, arXiv: 2304.10592, 2023

    [21]

    Zhang Renhui, Han Jiaming, Liu Chris, et al. LLaMA-Adapter: Efficient fine-tuning of language models with zero-init attention[J]. arXiv preprint, arXiv: 2303.16199, 2023

    [22]

    Gao Peng, Han Jiaming, Zhang Renrui, et al. LLaMA-Adapter V2: Parameter-efficient visual instruction model[J]. arXiv preprint, arXiv: 2304.15010, 2023

    [23]

    Liu Haotian, Li Chunyuan, Wu Qingyang, et al. Visual instruction tuning[J]. Advances in Neural Information Processing Systems, 2024. DOI: 10.48550/arXiv.2304.08485

    [24]

    Horawalavithana S, Munikoti S, Stewart I, et al. SciTune: Aligning large language models with scientific multimodal instructions[J]. arXiv preprint, arXiv: 2307.01139, 2023

    [25]

    Wei J, Zou Kai. EDA: Easy data augmentation techniques for boosting performance on text classification tasks[C]//Proc of the 2019 Conf on Empirical Methods in Natural Language Processing and the 9th Int Joint Conf on Natural Language Processing (EMNLP-IJCNLP). Stroudsburg, PA: ACL, 2019: 6382−6388

    [26]

    Wu Xing, Lv Shangwen, Zang Liangjun, et al. Conditional BERT contextual augmentation[C]// Proc of 19th Int Conf on Computational Science(CCS 2019). Berlin: Springer, 2019: 84−95

    [27]

    Kumar V, Choudhary A, Cho E. Data augmentation using pre-trained Transformer models[C]//Proc of the 2nd Workshop on Life-long Learning for Spoken Language Systems. Stroudsburg, PA: ACL, 2020: 18−26

    [28]

    Radford A, Jeffrey W, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI Blog, 2019, 1(8): 9−9

    [29]

    Kenton J D M W C, Toutanova L K. BERT: Pre-training of deep bidirectional Transformers for language understanding[C]//Proc of Annual Conf of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg, PA: ACL, 2019: 4171−4186

    [30]

    Lewis M, Liu Yinhan, Goyal N, et al. BART: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension[C]//Proc of the 58th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2020: 7871−7880

    [31]

    Dai Haixing, Liu Zhengliang, Liao Wenxiong, et al. ChatAug: Leveraging ChatGPT for text data augmentation[J]. arXiv preprint, arXiv: 2302.13007, 2023

    [32]

    Radford A, Kim J W, Hallacy C, et al. Learning transferable visual models from natural language supervision[C]//Proc of Int Conf on Machine Learning. New York: PMLR, 2021: 8748−8763

    [33]

    Touvron H, Lavril T, Izacard G, et al. Llama: Open and efficient foundation language models[J]. arXiv preprint, arXiv: 2302.13971, 2023

    [34]

    Xu Bo, Li Tingting, Zheng Junzhe, et al. MET-Meme: A multimodal meme dataset rich in metaphors[C]//Proc of the 45th Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2022: 2887−2899

    [35]

    Dimitrov D, Ali B B, Shaar S, et al. Detecting propaganda techniques in memes[C]//Proc of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th Int Joint Conf on Natural Language Processing (ACL-IJCNLP 2021). Stroudsburg, PA: 2021: 6603−6617

    [36]

    Pramanick S, Sharma S, Dimitrov D, et al. MOMENTA: A multimodal framework for detecting harmful memes and their targets[C]//Findings of the Association for Computational Linguistics: EMNLP 2021. Stroudsburg, PA: ACL, 2021: 4439−4455

    [37]

    Cai Yitao, Cai Huiyu, Wan Xiaojun. Multi-modal sarcasm detection in twitter with hierarchical fusion model[C]//Proc of the 57th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2019: 2506−2515

    [38]

    Li Junnan, Li Dongxu, Savarese S, et al. Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models[J]. arXiv preprint, arXiv: 2301.12597, 2023

    [39]

    Papineni K, Roukos S, Ward T, et al. BLEU: A method for automatic evaluation of machine translation[C]//Proc of the 40th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA: ACL, 2002: 311−318

    [40]

    Lin Chin-Yew. Rouge: A package for automatic evaluation of summaries[C]//Text Summarization Branches Out. Stroudsburg, PA: ACL, 2004: 74−81

    [41]

    Zhang Tianyi, Kishore V, Wu Felix, et al. BERTScore: Evaluating text generation with BERT[J]. arXiv preprint, arXiv: 1904.09675, 2019

    [42]

    Raffel C, Shazeer N, Roberts A, et al. Exploring the limits of transfer learning with a unified text-to-text transformer[J]. The Journal of Machine Learning Research, 2020, 21(1): 5485−5551

    [43]

    Fersini E, Gasparini F, Rizzi G, et al. SemEval-2022 Task 5: Multimedia automatic misogyny identification[C]//Proc of the 16th Int Workshop on Semantic Evaluation (SemEval-2022). Stroudsburg, PA: ACL, 2022: 533−549

  • 期刊类型引用(2)

    1. 陶静怡,彭凌祺,阚海斌. 支持黑名单的去中心化k次匿名属性认证. 计算机工程. 2025(02): 159-169 . 百度学术
    2. 刘青芳,郭银章,胡鹰. 基于SAMBA和CP-ABE的异构系统访问控制方法. 计算机技术与发展. 2024(11): 80-86 . 百度学术

    其他类型引用(1)

图(5)  /  表(8)
计量
  • 文章访问数:  316
  • HTML全文浏览量:  58
  • PDF下载量:  125
  • 被引次数: 3
出版历程
  • 收稿日期:  2023-11-29
  • 修回日期:  2024-03-11
  • 网络出版日期:  2024-03-19
  • 刊出日期:  2024-05-13

目录

/

返回文章
返回