Academic Research

Trusted transmission mechanism integrating multidimensional decision attribute-based signcryption

  • Zhang Jiangjiang 1 ,
  • Wu Yong 2 ,
  • Liu Xin 2 ,
  • Zhang Yu 3 ,
  • Luo Yihang , 2, *
Expand
  • 1. School of Computer and Information Technology, Shanxi University, Taiyuan 030006, China
  • 2. School of Computer Science, Beijing University of Technology, Beijing 100124, China
  • 3. School of Information Science and Technology, Zhengzhou Normal University, Zhengzhou 450044, China

Online published: 2026-04-01

Copyright

Copyright ©2025 Journal of Aeronautical Materials. All rights reserved.

Abstract

Due to the openness of the Internet of Things (IoT) and the influx of low-quality data from unreliable data circulators, data owners are faced with the risk of identity and sensitive information leakage during IoT data transmission. Superior performance in ensuring the confidentiality and trustworthiness of data transmission is shown by the multi-receiver signcryption mechanism. However, the security requirements of IoT data transmission in terms of privacy protection, on-demand participation, and resistance to malicious behavior still fail to be fully met by existing multi-receiver signcryption schemes. An trusted transmission scheme integrating multidimensional decision attribute-based signcryption is proposed by integrating multi-dimensional decision attributes with multi-receiver signcryption. Potential issues such as privacy leakage, unqualified participation, and malicious data publishing in IoT data transmission are aimed to be addressed by the scheme. A rigorous security analysis of the proposed scheme is conducted in the random oracle model. Additionally, lower computational complexity and communication overhead are achieved by the proposed scheme compared to related schemes, as demonstrated by simulation results.

Cite this article

Zhang Jiangjiang , Wu Yong , Liu Xin , Zhang Yu , Luo Yihang . Trusted transmission mechanism integrating multidimensional decision attribute-based signcryption[J]. Journal of Cybersecurity, 2025 , 3(5) : 102 -113 . DOI: 10.20172/j.issn.2097-3136.250332

0 引言

在数字经济迅猛发展的背景下,物联网技术正逐步渗透到人类日常生活的各个层面。物联网数据传输环节作为物联网数据生命周期中的关键节点,直接影响着数据的完整性、隐私安全及用户的信任感。物联网数据传输中涉及大量敏感信息,为了维持物联网系统的稳定性和协同工作的有效性,数据在各环节的传输必须是可靠且一致的[1]。因此,保障物联网数据的可信传输尤为关键,对确保数据隐私的安全性和完整性具有重要意义。
然而,物联网数据传输过程中不可避免面临物联网系统内部或外部的安全威胁,包括主动恶意攻击,如冒充、修改、伪造等,可能导致无法挽回的数据隐私泄露和系统安全问题。尽管身份验证可以在一定程度上抵御此类攻击,但可能无意中泄露数据拥有者真实身份。一旦攻击者获取数据拥有者的真实身份,可能会追溯到其敏感信息,如身份信息、家庭住址 、健康信息等。这种隐私泄露会给数据拥有者带来不便,甚至引发数据歧视问题,从而降低其参与数据传输任务的积极性。因此,在物联网数据传输过程中采用数据访问控制机制来降低数据隐私泄露的风险势在必行。
除主动恶意攻击外,被动攻击也可能导致敏感数据未经授权泄露,如窃听、窃取等。应对此类攻击的一个有前景的解决方案是多接收者加密,该方案允许用户向多个接收者传输数据时只需进行一次加密。在物联网数据可信传输过程中,为了确保传输数据的机密性和真实性,同时保护数据拥有者的身份隐私,一个简便的解决方案是采用匿名认证和多接收者加密原语的简单组合,如先签名后加密、先加密后签名。然而,这两种方法都存在较高的计算成本和通信成本,即各原语的总组合成本高。因此,对于计算资源有限的边缘设备而言,此类成本往往难以承受的。
为了降低先签名后加密、先加密后签名方法的计算成本和通信成本,签密方案融合签名和加密技术,在降低通信成本的同时,有效保障了数据的机密性。近年来,研究者已提出多种多接收者匿名签密方案,如基于身份的签密方案[2]、无证书签密方案[3]。尽管如此,许多现有的多接收者匿名签密方案已被证明存在安全缺陷[4]。此外,此类方案都不能提供细粒度认证,只能确认物联网数据来自已注册数据发送者,而无法进一步验证数据拥有者的相关属性。
在物联网环境中,数据的可信传输需要兼顾隐私保护和细粒度认证。基于属性的签密方案通过融合加密与签名机制,能够有效满足上述需求[5]。然而,当前大多数基于属性的签密方案存在显著不足:一方面,此类方案无法实现数据的可追溯性和不可否认性,不诚实的数据拥有者可能滥用匿名性,发布不可信数据;另一方面,此类方案的签名与加密结构复杂,导致计算开销过大,难以适配资源受限的物联网场景。
为了解决上述问题,本文提出一种融合多维决策属性的签密(Integrates Multidimensional Decision Attributes Signcryption,IMDAS) 可信传输方案。该方案中,数据拥有者仅需对自有数据签名一次,就可以安全地与多个数据使用者传输共享数据。同时,数据拥有者可选择性地披露某些属性凭证,以证明其具备参与众包计算的任务资质,数据接收者无需知晓数据拥有者的真实身份、身份凭证及其他属性,即可验证密文的有效性。此外,由于资源有限的物联网设备难以承受签名加密和取消签名加密的繁重计算,因此,身份认证和部分加/解密操作外包给边缘服务器。

1 预备知识

1.1 双线性映射

$ {\mathbb{G}}_{1},{\mathbb{G}}_{2},{\mathbb{G}}_{T} $为3个$ p $阶有限循环群,映射$ e\colon {\mathbb{G}}_{1}\times {\mathbb{G}}_{2}\rightarrow {\mathbb{G}}_{T} $. 是一个双线性对,满足以下性质[6]:
1)双线性:对于任意$ a,b\in {\mathbb{Z}}_{p} $$ g\in {\mathbb{G}}_{1} $$ \widetilde{g}\in {\mathbb{G}}_{2} $$ e\left({g}^{a},{\widetilde{g}}^{b}\right)=e(g,\widetilde{g}{)}^{ab} $
2)非退化性:对于任意$ g\in {\mathbb{G}}_{1} $,存在$ \widetilde{g}\in {\mathbb{G}}_{2} $,使得$ e\left(g,\widetilde{g}\right)\neq 1 $成立,同时对任意$ \widetilde{g}\in {\mathbb{G}}_{2} $,存在$ g\in {\mathbb{G}}_{1} $,使得$ e(g,\widetilde{g})\neq 1 $成立。
3)可计算性:映射$ e $可以被有效地计算。

1.2 难题假设

1)$ {\mathrm{DDHP}} $(Decisional Diffie-Hellman Problem)假设:循环群$ \mathbb{G} $中的DDHP假设表明,给定$ \left\{g,{g}^{a}, {g}^{b},{g}^{c}\right\}\in {\mathbb{G}}^{4} $,如果$ a,b,c\in \mathbb{Z}_{p}^{3} $是未知的,那么对于任意概率多项式时间(Probabilistic Polynomial Time,PPT)算法,区分$ {g}^{a\cdot b}\overset{}{=}{g}^{c} $的概率可以忽略不计[6]
2)$ n-\text{SDHP} $n-Strong Diffie-Hellman Problem)假设:循环群$ \mathbb{G} $中的n-SDHP假设表明,给定输入元组$ \left\{g,{g}^{\gamma },{g}^{{{\gamma }^{2}}},\cdots,{g}^{{{\gamma }^{n}}}\right\}\in {\mathbb{G}}^{n+1} $,如果$ \gamma \in {\mathbb{Z}}_{p} $是未知的,则对于任意PPT算法,输出满足$ {A}^{\gamma +x}=g $的密钥对$ \left(x,A\right) $的概率是可忽略的。
3)$ {\mathrm{GDDHEP}} $(Generic Decisional Diffie-Hellman Exponentiation Problem)假设[7]:设$ \text{parm}=\left\{p, {\mathbb{G}}_{1},{\mathbb{G}}_{2},{\mathbb{G}}_{T},e\right\} $为双线性群参数,其中,$ f,g $是两个具有不同底的协素数多项式。GDDHEP假设是给定参数$ \left\{{g}_{0},g_{0}^{\gamma },g_{0}^{{\gamma }^{2}},\cdot \cdot \cdot ,g_{0}^{{\gamma }^{t-1}},g_{0}^{\gamma \cdot f(\gamma )},g_{0}^{k\cdot \gamma \cdot f(\gamma )}\right\}\in \mathbb{G}_{1}^{t+2} $$ \{{h}_{0},h_{0}^{\gamma },h_{0}^{{\gamma }^{2}},\cdot \cdot \cdot , h_{0}^{{\gamma }^{2n}}, h_{0}^{k\cdot g(\gamma )}\}\in \mathbb{G}_{2}^{2n+2} $$ Z\in {\mathbb{G}}_{T} $,对于任意PPT算法判别$ Z\overset{}{=} e({g}_{0},{h}_{0}{)}^{k\cdot f(\gamma )} $的概率都是可忽略的。

1.3 零知识证明

零知识证明(Zero-Knowledge Proof,ZKP)的知识(ZKP of Knowledge,ZKPoK)允许证明者生成加密证明,以说服验证者声明为真,同时不泄露任何其他私有信息。ZKPoK满足两个基本的安全属性:
1) 可靠性:只有当计算结果正确时,证明者才能说服验证者。
2) 零知识:验证者可以在不泄露任何秘密输入的情况下验证证明。通过使用Fiat-Shamir启发式算法[8],ZKPoK协议可被转换为非交互式。证明者向验证者证明的值$ V=\left(\begin{matrix}{\nu }_{1},{\nu }_{2},\cdots,{\nu }_{n}\\ \end{matrix}\right) $,则对应的 ZKPoK 协议需满足“不泄露$ V $的任何信息”的安全谓词,形式化表示为: $ \text{ZKPoK}\left\{\left({\nu }_{1},{\nu }_{2},\cdots,{\nu }_{n}\right)\colon \mathbb{P}\left({\nu }_{1},{\nu }_{2},\cdots,{\nu }_{n}\right)\right\} $

1.4 多接收者签密

多接收者签密是对传统签密方案的拓展,可使发送者一次性向多个接收者发送经过签名和加密的消息。一般来说,典型的多接收者签密方案涵盖4个核心算法:$ {\mathrm{Setup}} $$ {\mathrm{KeyGen}} $$ {\mathrm{Signcrypt}} $$ {\mathrm{Unsigncrypt}} $。近年来,多接收者签密已有多种变体被提出[2-3],本文以基于身份的多接收者签密为例介绍基本算法。
1) $ {\mathrm{Setup}} $算法:该算法以安全参数$ \lambda $为输入,输出系统参数,包括主公钥$ {\mathrm{mpk}} $和主私钥$ {\mathrm{msk}} $
2) $ {\mathrm{KeyGen}} $算法:该算法以主私钥$ {\mathrm{msk}} $$ {\mathrm{DO}} $的身份$ {\mathrm{OI}}{{\mathrm{d}}}_{i} $作为输入,输出用户的私钥$ {\mathrm{us}}{{\mathrm{k}}}_{i} $
3) $ {\mathrm{Signcrypt}} $算法:该算法以消息$ m $、数据发送方的私钥$ {\mathrm{us{k}}}_{i} $、发送方的身份$ {\mathrm{OI{d}}}_{i} $和接收者集合$ {\mathrm{DR}}\rightarrow \{{\mathrm{UI{d}}}_{1},{\mathrm{UI{d}}}_{2},\cdots ,{\mathrm{UI{d}}}_{s}\} $为输入,输出密文$ \mathbb{C} $
4) $ {\mathrm{Unsigncrypt}} $算法:该算法以密文$ \mathbb{C} $、发送方身份$ {\mathrm{OI{d}}}_{i} $、接收方身份$ {\mathrm{UI{d}}}_{j}\in {\mathrm{DR}} $的私钥$ {\mathrm{us{k}}}_{j} $为输入,输出原始消息$ m $或符号$ \bot $,其中,$ \bot $表示密文$ \mathbb{C} $无效。

2 系统模型

本节将介绍通信模型和威胁模型,并详细说明其形式化模型。

2.1 通信模型

图1 所示,通信模型中主要包含4种实体,分别是密钥生成机构(Private Key Generator,PKG)、数据发送者(Data Sender,DS)、数据接收者(Data Receiver,DR)和边缘服务器(Edge Server,ES)。DS 和 DR 分别包含一个或多个数据拥有者(Data Owner,DO)和数据使用者(Data User,DU)。DO 通常由一个或多个数据采集者组成,使用配备的物联网感知设备感测物联网数据,主要负责数据的众包采集任务。该通信模型中,主要研究如何在 DO 与 DU 之间实现一种安全且具有隐私保护的数据传输与存储机制。具体的数据传输机制细节描述如下。
图 1 通信模型

Fig.1 Communication mode

1) PKG 负责系统初始化和系统参数生成。同时,DO 的证书和 DU 的解密密钥由 PKG 颁发;此外,只有 PKG 可追踪 DO 的真实身份。
2) ES 受委托发布众包任务,同时负责验证密文以协助 DU 解密,并保存有效密文,供后续数据分析使用。
3) DO 根据发布的任务收集物联网数据,利用自身凭证及一组 DU 的身份对数据进行签密,再将密文发送至边缘服务器。
4) DU 主要接收 DS 传输的密文数据,经授权的 DU 可利用自身解密密钥对密文进行解密,分析其包含的数据内容,并将其应用于实际场景。

2.2 威胁模型

假设 PKG 为完全可信实体,DU 和边缘服务器为诚实但好奇的角色。与此同时,尽管大多数 DO 行为诚实,但仍有少数未知 DO 可能实施恶意操作。内部敌手包括边缘服务器、已注册 DO 及 DU,外部敌手为未注册或未认证的各方。因此,本方案可能面临以下威胁[9]
1) 隐私泄露:无物联网数据访问权限的敌手可能获得对敏感数据的未授权访问权限;同时,内外部敌手均可能获取 DO 的真实身份信息。
2) 不合格参与:无有效凭证的外部敌手,或属性不满足任务要求的内部恶意工作者,可能参与众包并发布不可信数据。
3) 数据伪造 / 修改:内外部敌手均可能非法伪造物联网数据或篡改系统中传输的数据。
4) 恶意行为否认:当内部 DO 存在恶意行为(即发送污染或伪造的物联网数据)时,可能否认自身发送的物联网数据,以逃避惩罚。

2.3 形式化模型

IMDAS方案包括5个阶段,即初始化阶段、注册阶段、数据签密阶段、数据解密阶段和溯源阶段($ n,s,t $分别表示为$ {\mathrm{DS}} $$ {\mathrm{DO}} $的数量和$ {\mathrm{DR}} $$ {\mathrm{DU}} $的数量及$ {\mathrm{DO}} $包含的属性数量,IMDAS方案中使用的其余相关符号如表1所示)。
表 1 符号及描述

Table 1 Symbols and corresponding description

符号 描述
$ || $ 数据连接
${\mathrm{ DS}}=\{{\mathrm{D{O}}}_{1},{\mathrm{D{O}}}_{2},\cdots ,{\mathrm{D{O}}}_{n}\} $ 包含$ n $$ {\mathrm{DO}} $$ {\mathrm{DS}} $集合
$ {\mathrm{DR=}}\{{\mathrm{D{}}{\mathrm{U}}}_{1},{\mathrm{D{U}}}_{2},\cdots ,{\mathrm{D{U}}}_{s}\} $ 包含$ s $$ {\mathrm{DU}} $$ {\mathrm{DR }}$集合
$ {\mathrm{D{O}}}_{i} $ $ {\mathrm{DS}} $中第$ i $$ {\mathrm{DO }}$,$ {\mathrm{D{O}}}_{i}\in {\mathrm{DS}} $
$ {\mathrm{D{U}}}_{j} $ $ {\mathrm{DR}} $中第$ j $$ {\mathrm{DU}} $,$ {\mathrm{D{U}}}_{j}\in {\mathrm{DR}} $
$ ({\mathrm{msk}},{\mathrm{mpk}}) $ 主私钥和主公钥对
$ {\mathrm{len}} $ 数据长度
$ {\mathrm{negl}}(\lambda ) $ 可忽略概率
$ {\mathrm{cre{d}}}_{i} $ $ {\mathrm{D{O}}}_{i} $的属性凭证
$ {\mathrm{At{t}}}_{i}=\{a_{i}^{1},a_{i}^{2},\cdots ,a_{i}^{t}\} $ $ {\mathrm{D{O}}}_{i} $包含的所有属性集合$ {\mathrm{At{t}}}_{i} $
$ \mathfrak{U}_{i} $ $ {\mathrm{D{O}}}_{i} $公开的属性集合,$ \mathfrak{A}_{i}\in{\mathrm{ At{t}}}_{i} $
$ \mathfrak{\overline{U}}_{i} $ $ {\mathrm{D{O}}}_{i} $未公开的属性集合,$ {\overline{A}}_{i}\in {\mathrm{At{t}}}_{i} $
$ {\mathrm{D{K}}}_{j} $ $ {\mathrm{D{U}}}_{j} $的解密密钥
$ \overline{{\pi }_{i}},{\pi }_{i}. $ 零知识证明
$ H,{H}_{0},{H}_{1} $ 加密哈希函数
1) 系统初始化阶段:$ {\mathrm{PKG}} $运行$ {\mathrm{Setup}} $算法,生成主公钥/密钥对。
$ {\mathrm{Setup}}\left({1}^{\lambda }\right)\rightarrow \left(\left({\mathrm{msk}},{\mathrm{mpk}}\right),{\mathrm{Reg}}\right) $:该算法以安全参数$ \lambda $为输入,输出主密钥$ {\mathrm{msk}} $、对应的主公钥$ {\mathrm{mpk}} $和初始注册表$ {\mathrm{Reg}} $,其中,$ {\mathrm{mpk}} $是算法的隐式输入。
2) 注册阶段:在该阶段中,每个$ {\mathrm{D{O}}}_{i} $利用$ {\mathrm{PKG}} $运行$ {\mathrm{CKeyGen}} $算法来生成基于属性的证书,而每个$ {\mathrm{D{U}}}_{j} $通过$ {\mathrm{PKG}} $执行$ {\mathrm{DKeyGen}} $算法,生成基于身份的解密密钥。
$ {\mathrm{CKeyGen}} $算法:$ {\mathrm{CKeyGen}}\ ({\mathrm{D{O}}}_{i}{\mathrm{(OI{d}}}_{i},\ {\mathrm{At{t}}}_{i})\ \rightleftharpoons\ {\mathrm{KGI}} ({\mathrm{OI{d}}}_{i}, {E}_{i}, \overline{{\pi }_{i}},{\mathrm{At{t}}}_{i},{\mathrm{msk}}))\rightarrow ({\mathrm{cre{d}}}_{i}{\mathrm{or}}\bot ) $,是$ {\mathrm{PKG}} $$ {\mathrm{D{O}}}_{i} $之间运行的交互式算法。$ {\mathrm{D{O}}}_{i} $以自身的身份$ {\mathrm{OI{d}}}_{i} $和多维属性集$ {\mathrm{At{t}}}_{i} $为输入,并生成值$ {E}_{i} $以及零知识证明$ \overline{{\pi }_{i}} $。然后,$ {\mathrm{D{O}}}_{i} $${\mathrm{ OI{d}}}_{i} $$ {E}_{i} $$ \overline{{\pi }_{i}} $$ {\mathrm{At{t}}}_{i} $发送给$ {\mathrm{PKG}} $$ {\mathrm{PKG}} $$ ({\mathrm{OI{d}}}_{i},{E}_{i},\overline{{\pi }_{i}},{\mathrm{At{t}}}_{i}) $和主密钥$ {\mathrm{msk}} $作为输入,并检查$ \overline{{\pi }_{i}} $$ {\mathrm{At{t}}}_{i} $是否无效。若存在无效项,则$ {\mathrm{PKG}} $$ {\mathrm{D{O}}}_{i} $返回$ \bot $;否则$ ,{\mathrm{PKG}} $生成密钥凭证$ {A}_{i} $,然后通过秘密信道向$ {\mathrm{D{O}}}_{i} $返回密钥凭证$ {A}_{i} $。最后,$ {\mathrm{D{O}}}_{i} $基于返回的密钥凭证$ {A}_{i} $生成其属性凭证$ {\mathrm{cre{d}}}_{i} $
$ {\mathrm{DKeyGen}} $算法$ {\mathrm{DKeyGen}}({\mathrm{D{U}}}_{j}\left({\mathrm{UI{d}}}_{j}\right)\ \rightleftharpoons\ {\mathrm{KGI}} ({\mathrm{UI{d}}}_{j}, $$ {\mathrm{msk}}))\rightarrow {\mathrm{D{K}}}_{j} $$ {\mathrm{PKG}} $$ {\mathrm{D{U}}}_{j} $之间运行的交互式算法。$ {\mathrm{D{U}}}_{j} $将自身的身份$ {\mathrm{UI{d}}}_{j} $发送到$ {\mathrm{PKG}} $,然后$ {\mathrm{PKG}} $将身份$ {\mathrm{UI{d}}}_{j} $和主密钥$ {\mathrm{msk}} $作为输入,生成解密密钥$ {\mathrm{D{K}}}_{j} $,并且通过秘密信道将解密密钥$ {\mathrm{D{K}}}_{j} $发送到$ {\mathrm{D{U}}}_{j} $
3) 数据签密阶段:$ {\mathrm{D{O}}}_{i} $运行$ {\mathrm{Signcrypt}} $算法来生成自身数据的密文$ {\mathbb{C}}_{i} $
$ {\mathrm{Signcrypt}} $算法:$ {\mathrm{Signcrypt}}\left({m}_{i},{\mathrm{cre{d}}}_{i},\mathfrak{A}_{i},{\mathrm{DR}}\right) $ $ \rightarrow {\mathbb{C}}_{i}, $是以数据$ {m}_{i} $、用户属性凭证$ {\mathrm{cre{d}}}_{i} $、公开属性集$ \mathfrak{A}_{i} $$ {\mathrm{DR}}({\mathrm{D{U}}}_{j}\in {\mathrm{DR}}) $为输入,并输出签密数据的密文$ {\mathbb{C}}_{i} $
4)数据解签阶段:边缘服务器和$ {\mathrm{D{U}}}_{j} $运行$ {\mathrm{Unsigncrypt}} $算法,验证密文$ {\mathbb{C}}_{i} $并恢复物联网原始数据$ {m}_{i} $
$ {\mathrm{Unsigncrypt}} $算法:$ {\mathrm{Unsigncrypt}}\left({\mathbb{C}}_{i},{\mathrm{D{K}}}_{j}\right) \rightarrow ({m}_{i}\ {\mathrm{or}} \bot ) $,是以密文$ {\mathbb{C}}_{i} $和授权的$ {\mathrm{D{U}}}_{j} $的解密密钥$ {\mathrm{D{K}}}_{j} $为输入。如果密文$ {\mathbb{C}}_{i} $有效,则该算法输出明文$ {m}_{i} $,否则输出$ \bot $
5)溯源阶段:${\rm{PKG}}$运行${\rm{Open}}$算法来追踪恶意${\rm{D{O}}}_{i}$的真实身份${\rm{OI{d}}}_{i}$
${\rm{Open}}$算法:${\rm{Open}}({\mathbb{C}}_{i},{\rm{Reg}},{\rm{msk}})\rightarrow ({\rm{OI{d}}}_{i}{\rm{or}}\bot )$是以密文$ {\mathbb{C}}_{i} $、注册表$ {\rm{Reg}} $和主密钥$ {\rm{msk}} $为输入,输出$ {\rm{D{O}}}_{i} $的身份$ {\rm{OI{d}}}_{i} $,若无法溯源到身份,则输出$ \bot $

3 IMDAS机制

本节将进一步详细描述IMDAS方案,主要包括系统初始化阶段、注册阶段、数据签密阶段、数据解密阶段和数据溯源阶段的设计过程。

3.1 初始化阶段

PKG将安全参数$ \lambda $作为输入,并运行${\rm{Setup}}$算法,其计算流程如下:
$ {\mathrm{Setup}}({1}^{\lambda }) $算法:首先,PKG生成密钥对参数$ {\mathrm{pp}}=\left\{p,{\mathbb{G}}_{1},{\mathbb{G}}_{2},{\mathbb{G}}_{T},e\right\} $,并生成初始为空的秘密注册表$ {\mathrm{Reg}} $;然后,PKG随机选择$ \gamma ,\varphi \in \mathbb{Z}_{p}^{2},g,{g}^{\prime},{g}_{1}, {g}_{2},\cdot \cdot \cdot , {g}_{t}\in \mathbb{G}_{1}^{t+2} $$ h\in {\mathbb{G}}_{2} $,并选择3个哈希函数$ H\colon \{0{,}1{\}}^{*}\rightarrow {\mathbb{Z}}_{p} $$ {H}_{0}\colon \{0{,}1{\}}^{*}\rightarrow {\mathbb{Z}}_{p} $$ {H}_{1}\colon {\mathbb{G}}_{T}\rightarrow \{0{,}1{\}}^{2l} $。最后,PKG将主私钥设置为$ {\mathrm{msk}}=\left\{\gamma ,\varphi \right\} $,并发布主公钥$ {\mathrm{mpk}}=\{pp,e\left(g,h\right), {g}^{\prime},{g}_{1},{g}_{2},\cdot \cdot \cdot ,{g}_{t},h,{h}_{1},\begin{matrix}{h}_{2},\cdot \cdot \cdot ,{h}_{n},\\ \end{matrix}T,Y,H,{H}_{0},{H}_{1}\} $,其中,$ {h}_{i}= {h}^{{{\gamma }^{i}}}, T={g}^{\gamma },Y={T}^{\varphi } $

3.2 注册阶段

在此阶段,$ {\mathrm{D{O}}}_{i} $执行$ {\mathrm{CKeyGen}} $算法和$ {\mathrm{DKeyGen}} $算法,分别为$ {\mathrm{DO}} $$ {\mathrm{DU}} $生成属性凭证以及解密密钥。为确保属性凭证或密钥的安全发放,本节假设PKG与每个$ {\mathrm{DO}} $$ {\mathrm{DU}} $之间存在一个可信安全通道[10]
$ {\mathrm{CKeyGen}} $算法:$ {\mathrm{CKeyGen}}({\mathrm{D{O}}}_{i}({\mathrm{OI{d}}}_{i},{\mathrm{At{t}}}_{i})\rightleftharpoons {\mathrm{KGI}}$$({\mathrm{OI{d}}}_{i},{E}_{i},{\overline{\pi }}_{i},{\mathrm{At{t}}}_{i},{\mathrm{msk}})) $$ {\mathrm{D{O}}}_{i} $随机选择一个秘密数$ {s}_{i}\in {\mathbb{Z}}_{p} $,并生成一个秘密值$ {E}_{i}=(g'{)}^{{{s}_{i}}} $。然后,$ {\mathrm{D{O}}}_{i} $向PKG发送消息$ \{{\mathrm{OI{d}}}_{i},{\mathrm{At{t}}}_{i},{E}_{i},{\overline{\pi }}_{i}\} $,其中$ ,{\mathrm{OI{d}}}_{i} $$ {\mathrm{D{O}}}_{i} $的唯一标识;$ {\mathrm{At{t}}}_{i} $是包含$ {\mathrm{D{O}}}_{i} $$ t $个属性$ \{{a}_{1},{a}_{2},\cdots ,{a}_{t}\} $的属性集; $ {\overline{\pi }}_{i}={\mathrm{ZKPo{K}}}_{1}\{({s}_{i}){\colon E}_{i}=({g}^{\prime}{)}^{{{s}_{i}}}\} $是零知识证明[11]。一旦接收到消息$ \{{\mathrm{OI{d}}}_{i},{\mathrm{At{t}}}_{i},{E}_{i},{\overline{\pi }}_{i}\} $,PKG将按照$ {\mathrm{ZKPo{K}}}_{1} $的计算过程来检查属性凭证$ {\mathrm{cre{d}}}_{i} $和零知识证明$ {\overline{\pi }}_{i} $。如果$ {\mathrm{At{t}}}_{i} $$ {\overline{\pi }}_{i} $无效,则PKG丢弃该消息;否则,PKG计算属性秘密值$ {A}_{i}={({E}_{i}\cdot \prod \limits_{i=1}^{t}g_{i}^{{a}_{i}})}^{\tfrac{1}{\gamma +{H}_{0}({\mathrm{OI{d}}}_{i})}} $,将$ ({\mathrm{OI{d}}}_{i},{E}_{i},{A}_{i}) $添加到注册表$ {\mathrm{Reg}} $中,并通过安全信道将属性秘密值$ {A}_{i} $返回给$ {\mathrm{D{O}}}_{i} $。在接收到属性秘密值$ {A}_{i} $时,$ {\mathrm{D{O}}}_{i} $验证$ e({A}_{i},{h}_{1}\cdot {h}^{{{H}_{0}}({\mathrm{OI{d}}}_{i})})\overset{}{=}e({E}_{i}\cdot \prod \limits_{i=1}^{t}g_{i}^{{a}_{i}},h) $是否成立。如果等式不成立,则$ {\mathrm{D{O}}}_{i} $丢弃属性秘密值$ {A}_{i} $;否则,$ {\mathrm{D{O}}}_{i} $计算$ {B}_{i}=A_{i}^{-{H}_{0}({\mathrm{OI{d}}}_{i})}\cdot {E}_{i}\cdot \prod \limits_{i=1}^{t}g_{i}^{{a}_{i}} $,并设置$ {\mathrm{cre{d}}}_{i}=({A}_{i},{B}_{i},{E}_{i},{s}_{i}) $。注意,$ {B}_{i} $在这个阶段被计算和存储,以简化下一阶段的签密操作,并且等式$ e(A_{i}^{j},{h}_{1})=e(B_{i}^{j},h) $对任何$ j\in {\mathbb{Z}}_{p} $都成立。
$ {\mathrm{DKeyGen}} $算法:$ {\mathrm{DKeyGen}}({\mathrm{D{U}}}_{j}({\mathrm{UI{d}}}_{j})\rightleftharpoons {\mathrm{KGI}} ({\mathrm{UI{d}}}_{j}, $$ {\mathrm{msk}})) $$ {\mathrm{D{U}}}_{j} $将身份标识$ {\mathrm{UI{d}}}_{j} $发送到PKG,PKG计算$ {\mathrm{D{U}}}_{j} $的解密密钥值$ {\mathrm{D{K}}}_{j}={g}^{\tfrac{1}{\gamma +{H}_{0}({\mathrm{UI{d}}}_{j})}} $,并通过安全信道将解密密钥值$ {\mathrm{D{K}}}_{j} $发送到$ {\mathrm{D{U}}}_{j} $。在接收到解密密钥$ {\mathrm{D{K}}}_{j} $时,$ {\mathrm{D{U}}}_{j} $验证$ e({D}_{v},{h}_{1}\cdot {h}^{{{H}_{0}}({\mathrm{UI{d}}}_{j})})\overset{}{=} e(g,h) $是否成立。如果等式成立,则$ {\mathrm{D{U}}}_{j} $将解密密钥值$ {\mathrm{D{K}}}_{j} $设置为自身的解密密钥;否则,丢弃解密密钥值$ {\mathrm{D{K}}}_{j} $

3.3 数据签密阶段

假设$ {\mathrm{D{O}}}_{i} $可以检索计算任务需求和集合$ {\mathrm{DR}} $$ {\mathrm{D{U}}}_{j} $,则有$ \left\{{\mathrm{D{O}}}_{i}\rightarrow{\mathrm{ D{U}}}_{j}\right\}=\left\{{\mathrm{UI}}{\mathrm{d}}_{1}^{i\rightarrow 1},{\mathrm{UId}}_{2}^{i\rightarrow 2},\cdot \cdot \cdot ,{\mathrm{UId}}_{j}^{i\rightarrow j}\right\} $$ {\mathrm{UId}}_{j}^{i\rightarrow j}\left(i\in \left\{1{,}2,\cdot \cdot \cdot ,n\right\},j\in \left\{1{,}2,\cdot \cdot \cdot ,s\right\}\right) $$ {\mathrm{D{O}}}_{i} $能获得的$ {\mathrm{DR}} $集合中$ {\mathrm{D{U}}}_{j} $的身份。$ {\mathrm{D{O}}}_{i} $选择公开决策属性集合$ {A}_{i}=\left\{a_{i}^{1},a_{i}^{2},\cdots a_{i}^{\vartheta }\right\}(\vartheta \in \left\{1{,}2,\cdot \cdot \cdot ,t\right\}) $来证明其属性凭证$ {\mathrm{cre{d}}}_{i} $
$ {\mathrm{Signcrypt}} $算法:$ {\mathrm{Signcrypt}}({m}_{i},{\mathrm{cre{d}}}_{i},{A}_{i},{\mathrm{DR}}) $,边缘服务器和$ {\mathrm{D{O}}}_{i} $对数据$ {m}_{i} $进行如下签密流程。
1) 外包签密:边缘服务器计算值$ \;\;\widetilde{h}\; = {h}^{{{\prod }_{{\mathrm{UI{{d}}}_{j}}\in DR}}\left(\gamma +{H}_{0}\left({\mathrm{UI{d}}}_{j}\right)\right)} $
2) $ {\mathrm{D{O}}}_{i} $签密:根据边缘服务器的计算任务需求和$ \widetilde{h} $$ {\mathrm{D{O}}}_{i} $对其拥有的物联网数据$ {m}_{i} $进行如下签密流程:
①随机选择$ {k}_{i}\in {\mathbb{Z}}_{p} $$ {r}_{i}\in \{0{,}1{\}}^{l} $,计算$ {C}_{i,0}= ({m}_{i}||{r}_{i})\oplus {H}_{1}\left(e(g,h{)}^{{{k}_{i}}}\right) $
②计算承诺$ {\mathrm{c{m}}}_{i}=H\left({r}_{i}\left| \left| \mathfrak{A}_{i}\right| \right| TS\right) $,其中$ ,S $是时间戳。
③随机选择$ {\nu }_{i}\in {\mathbb{Z}}_{p} $,计算密文$ {C}_{i}=\left\{{C}_{i,1},{C}_{i,2},{C}_{i,3}, {C}_{i,4},{C}_{i,5},{\pi }_{i}\right\} $,其中$ ,{C}_{i,1}={\left(\widetilde{h}\right)}^{{{k}_{i}}} $$ {C}_{i,2}=A_{i}^{{\nu }_{i}},{C}_{i,3}=B_{i}^{{\nu }_{i}},{C}_{i,4}= {T}^{-{{k}_{i}}},{C}_{i,5}={E}_{i}\cdot {Y}^{-{{k}_{i}}} $$ {\pi }_{i} $,且$ {\pi }_{i} $被定义为:
$ \begin{split}\pi_i& =\operatorname{ZKPoK}_2\left\{\left(v_i, k_i, s_i,\left(a_i^1, a_i^2, \cdots, a_i^{t-\vartheta}\right), H_0\left(\operatorname{{\mathrm{OId}}}_i\right)\right):\right. \\& C_{i, 3}=C_{i, 2}^{-H_0\left({\mathrm{O I d}}_i\right)} \cdot\left(g^{\prime}\right)^{s_i \cdot v_i} \cdot \Lambda^{v_i} \cdot \prod_{x=1}^{t-\vartheta}\left(g_x\right)^{v_i \cdot a_i^x} \wedge \\& \left.C_{i, 4}=T^{-k_i} \wedge C_{i, 5}=E_i \cdot Y^{-k_i}\right\}\end{split} $
其中$ ,\mathit{\Lambda }=g_{1}^{a_{i}^{1}}\cdot g_{2}^{a_{i}^{2}}...\cdot g_{\vartheta }^{a_{i}^{\vartheta }} $涉及所公开的属性集合$ \mathfrak{A}_{i} $,并且非公开属性集合$ \mathfrak{\overline{A}}_{i}={\mathrm{At{t}}}_{i}/ \mathfrak{A}_{i}=\left(a_{i}^{1}, a_{i}^{2},\cdot \cdot \cdot ,a_{i}^{t-\vartheta }\right), \mathfrak{\overline{A}}_{i}\in {\mathrm{At{t}}}_{i} $中包含$ {\mathrm{D{O}}}_{i} $想要保密的属性。最后,$ {\mathrm{D{O}}}_{i} $向边缘服务器发送$ {\mathbb{C}}_{i}=\left\{{C}_{i},c{m}_{i}, \mathfrak{A}_{i},{\mathrm{DR}},{\mathrm{TS}}\right\} $

3.4 数据解密阶段

$ {\mathrm{DR}} $一旦接收到密文$ {\mathbb{C}}_{i} $,在边缘服务器的帮助下,其身份在$ {\mathrm{DR}} $中的$ {\mathrm{D{U}}}_{j} $可以恢复物联网原始数据$ {m}_{i} $
$ {\mathrm{Unsigncrypt}} $算法:$ {\mathrm{Unsigncrypt}}({\mathbb{C}}_{i},{D}_{v}) $,边缘服务器和$ {\mathrm{D{U}}}_{j} $对密文$ {\mathbb{C}}_{i} $进行如下解密流程。
1) 外包解密:边缘服务器验证密文$ {\mathbb{C}}_{i} $的有效性,并执行如下解密操作流程。
①检查时间戳$ {\mathrm{TS}} $是否有效,若有效,则转下一步;否则中止。
②验证等式$ \begin{matrix}e\left({C}_{i,3},h\right)\overset{}{=}e\left({C}_{i,2},{h}_{1}\right)\\ \end{matrix} $是否成立。若成立,则转下一步;否则中止。
③按照$ {\mathrm{ZKPo{K}}}_{2} $[12]的计算过程检查零知识证明$ {\pi }_{i} $的有效性,然后存储密文$ {\mathbb{C}}_{i} $。如果返回值为1,则继续;否则中止。
④边缘服务器使用公钥$ {\mathrm{mpk}} $$ {\mathrm{DR}} $来计算每个$ {\mathrm{D{U}}}_{j} $$ {h}^{{{p}_{j,{\mathrm{DR}}}}\left(\gamma \right)} $,其中,$ {p}_{j,{\mathrm{DR}}}(\gamma )=\dfrac{1}{\gamma }({\prod }_{j\neq k}(\gamma + {H}_{0}({\mathrm{UI{d}}}_{k}))- $${\prod }_{j\neq k}{H}_{0}({\mathrm{UI{d}}}_{k}))_{{\mathrm{UI}}{{{\mathrm{d}}}_{k}},{\mathrm{UI}}{{{\mathrm{d}}}_{j}}\in DR}$
2) $ {\mathrm{D{U}}}_{j} $解签密:$ {\mathrm{D{U}}}_{j} $从边缘服务器端下载密文$ {\mathbb{C}}_{i} $$ {h}^{{{p}_{j,{\mathrm{DR}}}}\left(\gamma \right)} $,并按如下流程恢复原始数据$ {m}_{i} $
①计算$ {Z}_{j}=e\left({C}_{i,4},{h}^{{{p}_{j,{\mathrm{DR}}}}\left(\gamma \right)}\right) $$ {F}_{j}=e\left({\mathrm{D{K}}}_{j},{C}_{i,1}\right) $,然后计算$ {T}_{j}=({Z}_{j}\cdot {F}_{j}{)}^{\tfrac{1}{{\prod }_{{\mathrm{UI{{d}}}_{k}}\in {\mathrm{DR}},j\neq k}{H}_{0}\left({\mathrm{UI{d}}}_{k}\right)}} $
②计算$ m_{i}^{\prime}||r_{i}^{\prime}={C}_{i,0}\oplus {H}_{1}\left({T}_{j}\right) $,并检查$ {\mathrm{c{m}}}_{i}\overset{}{=}H\left(r_{i}^{\prime} \left| \left| {A}_{i}\right| \right| {\mathrm{TS}}\right) $是否成立。如果等式成立,则接收数据$ m_{i}^{\prime} $;否则中止。

3.5 数据溯源阶段

为了识别由注册的$ {\mathrm{D{O}}}_{i} $发送的恶意数据$ {m}_{i} $$ {\mathrm{D{U}}}_{j} $首先将对应的密文$ {\mathbb{C}}_{i} $转发给PKG以进行跟踪。然后,PKG运行$ {\mathrm{Open}} $算法来溯源恶意${\mathrm{ D{O}}}_{i} $的真实身份$ {\mathrm{OI{d}}}_{i} $,流程如下。
$ {\mathrm{Open}} $算法:$ {\mathrm{Open}}\left({\mathbb{C}}_{i},{\mathrm{R}}\text{eg},{\mathrm{msk}}\right) $,PKG计算$ {E}_{i}= {C}_{i,5}/ {{{C}_{i,4}}}^{\varphi } $,如果注册表$ \text{Reg} $中有记录$ \left({\mathrm{OI{d}}}_{i},{E}_{i},{A}_{i}\right) $,则输出${\mathrm{ D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $;否则输出$ \bot $

4 正确性和安全性证明

本节分别从正确性和安全性两方面来证明IMDAS方案的有效性。

4.1 正确性证明

为证明数据恢复的正确性,可以通过判断以下等式是否成立来验证。
$ \begin{split}&Z_j \cdot F_j =e\left(C_{i, 4}, h^{p_{j, {\mathrm{D R}}}(\gamma)}\right) \cdot e\left(D_j, C_{i, 1}\right) \\& =e\left(T^{-k_i}, h^{p_{j, {\mathrm{D R}}}(\gamma)}\right) \cdot e\left(D_j, C_{i, 1}\right) \\& =e\left(g^{-k_i}, h^{\left(\Pi_{{\mathrm{U I d}}_k \in {\mathrm{D R}}, j \neq k}\left(\gamma+H_0\left({\mathrm{U I d}}_k\right)\right)-\Pi_{{\mathrm{U I d}}_k \in {\mathrm{D R}}, j \neq k} H_0\left({\mathrm{U I d}}_k\right)\right)}\right) \\& \cdot\left(g^{\tfrac{1}{\gamma+H_0\left({\mathrm{U I d}}_j\right)}}, h^{k_i \Pi_{{\mathrm{U I d}}_k \in D R}\left(\gamma+H_0\left({\mathrm{U I d}}_k\right)\right)}\right) \\& =e\left(g^{-k_i}, h_{{\mathrm{U I d}}_k \in {\mathrm{D R}}, j \neq k}\left(\gamma+H_0\left({\mathrm{U I d}}_k\right)\right)-\Pi_{{\mathrm{U I d}}_k \in {\mathrm{D R}}, j \neq k} H_0\left({\mathrm{U I d}}_k\right)\right. \\& \cdot e\left(g, h^{k_i \Pi_{{\mathrm{U I d}}_k \in {\mathrm{D R}}, j \neq k}\left(\gamma+H_0\left({\mathrm{U I d}}_k\right)\right)}\right) \\& =e(g, h)^{k_i\left(\Pi_{{\mathrm{U I d}}_k \in {\mathrm{D R}}, j \neq k} H_0\left({\mathrm{U I d}}_k\right)\right)}\end{split} $
由上式可知,$ e(g,h{)}^{{{k}_{i}}}=({Z}_{j}\cdot {F}_{j}{)}^{\tfrac{1}{{\prod }_{{\mathrm{UI{{d}}}_{k}}\in {\mathrm{DR}},j\neq k}{H}_{0}({\mathrm{UI{d}}}_{k})}} $,这意味着可以正确地恢复物联网数据$ {m}_{i} $

4.2 形式化安全性证明

本节将详细分析IMDAS方案所满足的安全性质。
定理1 如果$ (f,g,F)-{\mathrm{GDDHEP}} $假设成立,那么IMDAS方案能满足机密性。
证明 假设存在一个PPT敌手$ \mathcal{A} $可以破坏IMDAS方案的机密性,并且存在一个挑战者$ \mathcal{B} $能够利用敌手$ \mathcal{A} $来解决$ \colon (f,g,F)-{\mathrm{GDDHEP}} $假设。挑战者$ \mathcal{B} $提供了$ (f,g,F)-{\mathrm{GDDHEP}} $ 实例$ \{{g}_{0},g_{0}^{\gamma },g_{0}^{{\gamma }^{2}},\cdot \cdot \cdot ,g_{0}^{{\gamma }^{t-1}}, g_{0}^{\gamma \cdot f(\gamma )}, g_{0}^{k\cdot \gamma \cdot f(\gamma )},{h}_{0},h_{0}^{\gamma },h_{0}^{{\gamma }^{2}},\cdot \cdot \cdot ,h_{0}^{{\gamma }^{2n}},h_{0}^{k\cdot g(\gamma )}\} $,以及$ Z\in {\mathbb{G}}_{T} $,挑战者$ \mathcal{B} $的目的是确定$ Z $是否等于$ e({g}_{0},{h}_{0}{)}^{k\cdot f(\gamma )} $。为便于博弈描述,定义以下函数[11]:
$ f(X)=\prod \limits_{1}^{t-1}(X+{w}_{i}) \text{,} {f}_{i}(X)=\frac{f(X)}{X+{w}_{i}} \text{,} g(X)=\prod \limits_{t}^{t+n-1}(X+{w}_{i}) $
1) 初始化阶段:敌手$ \mathcal{A} $输出一组挑战者$ \mathcal{B} $身份集$ {\mathrm{D{R}}}^{*}=\{{\mathrm{UId}}_{1}^{*},{\mathrm{UId}}_{2}^{*},\cdots ,{\mathrm{UId}}_{s}^{*}\} $
2) 注册阶段:挑战者$ \mathcal{B} $随机选择$ \varphi ,{r}_{0},{r}_{1}, {r}_{2},\cdots , {r}_{t}\in \mathbb{Z}_{p}^{t+2} $,然后令$ g=g_{0}^{f(\gamma )} $$ {g}^{\prime}={g}^{{{r}_{0}}} $$ {g}_{1}={g}^{{{r}_{1}}} $$ \cdots $$ {g}_{t}= {g}^{{{r}_{t}}} $$ h=h_{0}^{r+{s}^{t+n-1}} $$ T=g_{0}^{\gamma \cdot f(\gamma )} $$ Y={T}^{\varphi } $。挑战者$ \mathcal{B} $然后给$ {\mathrm{mpk}}=\{{\mathrm{pp}},e(g,h),{g}^{\prime},{g}_{1},\cdots ,{g}_{t},h,{h}^{\gamma },{h}^{{{\gamma }^{2}}},\cdots ,{h}^{{{\gamma }^{n}}},T,Y\} $到敌手$ \mathcal{A} $。挑战者$ \mathcal{B} $初始化3个空列表:$ {\mathrm{Reg}} $$ {\mathcal{L}}_{\text{hash}} $$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $,并且添加记录$ \left({\mathrm{UId}}_{i}^{*},{w}_{i}\right)_{t}^{t+s-1} $$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $
3) 查询阶段:挑战者$ \mathcal{B} $可以回答敌手$ \mathcal{A} $以下问题[12]
$ {\mathcal{O}}_{h}({\mathrm{s{r}}}_{i}) $:若$ {\mathrm{s{r}}}_{i} $已经在$ {\mathcal{L}}_{\text{hash}} $中,挑战者$ \mathcal{B} $返回相应的$ {c}_{i} $;否则,挑战者$ \mathcal{B} $随机选取一个值$ {c}_{i}\in {\mathbb{Z}}_{p} $,将$ ({\mathrm{s{r}}}_{i},{c}_{i}) $加到$ {\mathcal{L}}_{\text{hash}} $中,将$ {c}_{i} $返回给敌手$ \mathcal{A} $
$ {\mathcal{O}}_{{{h}_{0}}}({\mathrm{OI{d}}}_{i}) $:若$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $已经在$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $中,挑战者$ \mathcal{B} $返回对应的生成值$ {w}_{i} $;否则,挑战者$ \mathcal{B} $计算$ {H}_{0}({\mathrm{OI{d}}}_{i})={w}_{i} $,将$ ({\mathrm{OI{d}}}_{i},{w}_{i}) $加到$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $中,并令生成值$ {w}_{i} $返回给敌手$ \mathcal{A} $
$ {\mathcal{O}}_{ck}({\mathrm{OI{d}}}_{i},{E}_{i},{\mathrm{At{t}}}_{i},\overline{{\pi }_{i}}) $:若属性集$ {\mathrm{At{t}}}_{i} $和零知识证明$ \overline{{\pi }_{i}} $都有效,则从零知识证明$ \overline{{\pi }_{i}} $中提取证明$ {s}_{i} $;否则返回$ \bot $。如果$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $存在于$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $中,则挑战者$ \mathcal{B} $使用对应的生成值$ {w}_{i} $计算密钥凭证$ {A}_{i} $为:
$ \begin{split} {A}_{i}&= g_{0}^{{f}_{i}\left(\gamma \right)\cdot {s}_{i}\cdot {r}_{0}}\cdot g_{0}^{{f}_{i}\left(\gamma \right)\cdot {a}_{1}\cdot {r}_{1}}\cdot g_{0}^{{f}_{i}\left(\gamma \right)\cdot {a}_{2}\cdot {r}_{2}}\cdots g_{0}^{{f}_{i}\left(\gamma \right)\cdot {a}_{t}\cdot {r}_{t}} \\& ={\left(({g}^{\prime}{)}^{{{s}_{i}}}\cdot \prod \limits_{x=1}^{t}g_{x}^{{a}_{x}}\right)}^{\tfrac{1}{\gamma +{w}_{i}}}\end{split} $
然后将密钥凭证$ {A}_{i} $返回给敌手$ \mathcal{A} $。否则,挑战者$ \mathcal{B} $选择一个未使用的生成值$ {w}_{i} $,计算$ {H}_{0}({\mathrm{{\mathrm{OI{d}}}}}_{i})={w}_{i} $,将$ ({\mathrm{OI{d}}}_{i},{w}_{i}) $加到$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $中,如上所述计算密钥凭证$ {A}_{i} $。然后,挑战者$ \mathcal{B} $$ ({\mathrm{OI{d}}}_{i},{E}_{i},{A}_{i}) $添加到注册表$ {\mathrm{Reg}} $中,并将密钥凭证$ {A}_{i} $返回给敌手$ \mathcal{A} $。注意,当敌手$ \mathcal{A} $对相同的输入进行查询时,挑战者$ \mathcal{B} $以相同的答案回复。
$ {\mathcal{O}}_{{\mathrm{dk}}}({\mathrm{OI{d}}}_{i}) $:若$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $存在于$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $中,则挑战者$ \mathcal{B} $使用相应的生成值$ {w}_{i} $生成解密密钥$ {\mathrm{D{K}}}_{i}= g_{0}^{{f}_{i}(\gamma )} $;否则,挑战者$ \mathcal{B} $计算$ {H}_{0}({\mathrm{OI{d}}}_{i})={w}_{i} $,将$ ({\mathrm{OI{d}}}_{i},{w}_{i}) $加入$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $,并回复$ {\mathrm{D{K}}}_{i}=g_{0}^{{f}_{i}(\gamma )} $
$ {\mathcal{O}}_{sc}({\mathrm{OI{d}}}_{i},{m}_{i},{A}_{i},{\mathrm{DR}}) $:若$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $不在注册列表$ {\mathrm{Reg}} $中,$ {\mathrm{OId}}\notin {\mathrm{Reg}} $,则挑战者$ \mathcal{B} $调用$ {\mathrm{CkeyGen}} $算法,使用随机选择的包含$ {A}_{i} $属性集来注册$ {\mathrm{OI{d}}}_{i} $,并获得相应的密钥凭据$ {A}_{i} $。挑战者$ \mathcal{B} $使用密钥凭据$ {A}_{i} $和身份$ {\mathrm{OI{d}}}_{i} $来计算真实的$ {\mathrm{Signcryption}} $算法执行中的$ {C}_{i,0},{C}_{i,1},{C}_{i,2},{C}_{i,3},{C}_{i,4},{C}_{i,5} $,并通过控制$ {\mathcal{O}}_{h} $预言机计算零知识证明。
$ {\mathcal{O}}_{op}({\mathbb{C}}_{i}) $:挑战者$ \mathcal{B} $通过使用密钥$ \varphi $返回密文$ {\mathbb{C}}_{i} $对应的$ {\mathrm{OI{d}}}_{i} $作为实际执行。
4) 挑战阶段:敌手$ \mathcal{A} $输出挑战$ \{m_{0}^{*},m_{1}^{*}, \mathfrak{A}^{\star }, {\mathrm{OI{d}}}^{\star }\in {\mathrm{Reg}}\} $,挑战者$ \mathcal{B} $随机选择$ r\in \{0{,}1{\}}^{l} $$ \nu \in \mathbb{Z}_{p}^{2} $$ b\in \{0{,}1\} $,并计算挑战密文为[12]:
$ \begin{split}C_0 & =\left(m_b^* \| r\right) \oplus H_1\left(Z^{\Pi_{t+s}^{t+n-1} w_i} \cdot e\left(g_0^{k \cdot v \cdot f(\gamma)}, h_0^{q(\gamma)}\right)\right) \\C_1 & =h_0^{k \cdot g(\gamma)} \\C_2 & =\left(A^{\star}\right)^v \\C_3 & =\left(B^{\star}\right)^v \\C_4 & =g_0^{-k \cdot \gamma \cdot f(\gamma)}=T^{-k} \\C_5 & =E^{\star} \cdot C_4^{\varphi}=E^{\star} \cdot Y^{-k}\end{split} $
其中,$ q(\gamma )=\dfrac{1}{\gamma }(\prod \limits_{t+s}^{t+n-1}(\gamma +{w}_{i})-\prod \limits_{t+s}^{t+n-1}{w}_{i}) $$ {A}^{\star },{B}^{\star },{E}^{\star }\in \mathbb{G}_{1}^{3} $是与身份$ {\mathrm{OI{d}}}^{\star } $相对应的密钥凭证。敌手$ \mathcal{A} $还通过控制哈希预言机$ {\mathcal{O}}_{h} $计算零知识证明,然后将密文$ {\mathbb{C}}^{\mathbb{*}}=\{{C}_{0}, {C}_{1},{C}_{2},{C}_{3},{C}_{4},{C}_{5},\pi \} $发送给敌手$ \mathcal{A} $
5) 猜测阶段:敌手$ \mathcal{A} $生成$ m_{b}^{*} $的猜测$ {b}^{\prime}\in \{0{,}1\} $,如果$ {b}^{\prime} $=$ b $,挑战者$ \mathcal{B} $则输出猜测$ Z=e({g}_{0},{h}_{0}{)}^{k\cdot f(\gamma )} $
综上分析,如果$ Z=e({g}_{0},{h}_{0}{)}^{k\cdot f(\gamma )} $,则$ {\mathbb{C}}^{\mathbb{*}} $是一个有效的密文。因为,
$ \begin{split} {C}_{0}& ={m}_{b}\oplus H(e({g}_{0},{h}_{0}{)}^{k\cdot f\left(\gamma \right)\cdot {\prod \limits_{t+s}^{t+n-1}}{w}_{i}}\cdot e({g}_{0},{h}_{0}{)}^{k\cdot \gamma \cdot f(\gamma )q(\gamma )} \\& ={m}_{b}\oplus H(e({g}_{0},{h}_{0}{)}^{k\cdot f\left(\gamma \right)\cdot {\prod \limits_{t+s}^{t+n-1}}(\gamma +{w}_{i})} \\& ={m}_{b}\oplus H\left(e(g,h{)}^{k}\right)\end{split} $
并且,
$ {C}_{1}=h_{0}^{k\cdot g\left(\gamma \right)}=h_{0}^{k\cdot \prod \limits_{t}^{t+s-1}\left(\gamma +{w}_{i}\right)\cdot \prod \limits_{t+s}^{t+n-1}\left(\gamma +{w}_{i}\right)} ={h}^{k\cdot {\prod \limits_{t}^{t+s-1}}(\gamma +{w}_{i})} $
上述公式可以看出,博弈中的挑战模拟攻击与真实攻击是无法区分的[13]。因此,如果敌手$ \mathcal{A} $以不可忽略的优势$ \varepsilon $破坏了IMDAS方案的机密性,则在上述博弈的实际情况(即$ Z=e({g}_{0},{h}_{0}{)}^{k\cdot f(\gamma )} $)的概率是$ \mathit{\Pr } [b={b}^{\prime}\mid {\mathrm{Real}}]\geqslant \dfrac{1}{2}+\varepsilon $。在随机情况下(即$ Z\neq e({g}_{0}, {h}_{0}{)}^{k\cdot f(\gamma )} $),$ b $的分布独立于敌手$ \mathcal{A} $的分布,因此$ \mathit{\Pr } [b={b}^{\prime}\mid \text{Rand}]=\dfrac{1}{2} $。然后,敌手$ \mathcal{A} $计算出的优势为$ {\mathrm{Ad}}{\nu }^{(f,g,F)-{\mathrm{GDDHEP}}}(\mathcal{B})=\dfrac{1}{2}(\mathit{\Pr } [b={b}^{\prime}\mid {\mathrm{Real}}]-\mathit{\Pr } [b={b}^{\prime}\mid {\mathrm{Rand}}])\geqslant \dfrac{\varepsilon }{2} $,这意味着挑战者$ \mathcal{B} $可以以不可忽略的优势解决$ (f,g,F)-{\mathrm{GDDHEP}} $问题。
证毕。
定理2 若DDHP假设在$ {\mathbb{G}}_{1} $循环群中成立,则IMDAS方案能够满足匿名性。
证明 若一个PPT敌手$ \mathcal{A} $可以破坏IMDAS方案的匿名性来证明该定理,那么存在一个挑战者$ \mathcal{B} $来解决DDHP假设。因此,通过给挑战者$ \mathcal{B} $以DDHP实例$ \{g,\overline{A},\overline{B},\overline{C}\}=\{g,{g}^{x},{g}^{y},C\} $来猜测$ C\overset{}{=}{g}^{xy} $是否成立。
1) 注册阶段:挑战者$ \mathcal{B} $随机选择$ \gamma ,\varphi ,{r}_{0}, {r}_{1},{r}_{2},\cdots ,{r}_{t}\in \mathbb{Z}_{p}^{t+3} $$ h\in {\mathbb{G}}_{2} $。挑战者$ \mathcal{B} $设置$ {g}^{\prime}={g}^{{{r}_{0}}} $$ {g}_{1}= {g}^{{{r}_{1}}} $$ {g}_{2}={g}^{{{r}_{2}}} $$ \cdots $$ {g}_{t}={g}^{{{r}_{t}}} $和主公钥$ {\mathrm{mpk}}=\{{\mathrm{pp}},e(g,h), {g}^{\prime},{g}_{1},{g}_{2},{g}_{3},\cdots ,{g}_{t},h,{h}^{\gamma },{h}^{{{\gamma }^{2}}},\cdots ,{h}^{{{\gamma }^{n}}},T,Y\} $,其中,$ T={g}^{\gamma } $$ Y={T}^{\varphi } $。挑战者$ \mathcal{B} $$ {\mathrm{mpk}} $给敌手$ \mathcal{A} $,敌手$ \mathcal{A} $首先设置一个集合$ {\mathrm{CU}} $,其中包含要被攻破的$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $和属性;另一个集合$ {\mathrm{HU}} $,其中包含不被攻破的$ {\mathrm{D{O}}}_{i} $身份$ {\mathrm{OI{d}}}_{i} $和属性。敌手$ \mathcal{A} $$ {\mathrm{CU}} $$ {\mathrm{HU}} $都发送给挑战者$ \mathcal{B} $,对于每个$ {\mathrm{OI{d}}}_{i}\in {\mathrm{HU}} $,挑战者$ \mathcal{B} $随机选择$ {s}_{i}\in {\mathbb{Z}}_{p} $。假设$ {E}_{i}={\overline{A}}^{{{s}_{i}}\cdot {{r}_{0}}} $,执行$ {\mathrm{CkeyGen}} $算法来注册${\mathrm{ D{O}}}_{i} $的身份${\mathrm{ OI{d}}}_{i} $,挑战者$ \mathcal{B} $初始化两个空的哈希列表$ {\mathcal{L}}_{\text{hash}} $$ {\mathcal{L}}_{\text{has}{{\text{h}}_{0}}} $,以及一个空的注册表$ {\mathrm{Reg}} $
2) 查询阶段:挑战者$ \mathcal{B} $按照定理1的证明响应$ {\mathcal{O}}_{h} $预言机查询,并分别运行$ {\mathrm{CkeyGen}} $算法、$ {\mathrm{DKeyGen}} $算法和$ {\mathrm{Signcrypt}} $算法响应$ {\mathcal{O}}_{\mathrm{{ck}}} $$ {\mathcal{O}}_{{\mathrm{dk}}} $$ {\mathcal{O}}_{{\mathrm{sc}}} $预言机查询。对于$ {\mathcal{O}}_{{{h}_{1}}}({o}_{i}) $预言机查询,挑战者 $ \mathcal{B} $的处理方式如下:若$ {o}_{i} $已存在于$ {\mathcal{L}}_{\text{has}{{\text{h}}_{1}}} $中,则直接返回对应的$ {e}_{i} $;反之,若$ {o}_{i} $未在$ {\mathcal{L}}_{\text{has}{{\text{h}}_{1}}} $中,挑战者$ \mathcal{B} $将随机选取$ {e}_{i}\in \{0{,}1{\}}^{l} $,并将$ ({o}_{i},{e}_{i}) $添加至$ {\mathcal{L}}_{\text{has}{{\text{h}}_{1}}} $,随后将$ {e}_{i} $返回给敌手$ \mathcal{A} $。在处理$ {\mathcal{O}}_{{\mathrm{us}}}({\mathbb{C}}_{i},\mathcal{S}) $预言机查询时,挑战者$ \mathcal{B} $会先对密文$ {\mathbb{C}}_{i} $进行有效性验证,作为实际验证步骤;验证通过后,利用主密钥$ \gamma $恢复数据$ {m}_{i} $
3) 挑战阶段:敌手$ \mathcal{A} $输出查询{${\mathrm{OId}}_{0}^{*}, {\mathrm{OId}}_{1}^{*},$$ {m}^{*},{\mathrm{D{R}}}^{*},{A}^{\star } $},其中$ ,{\mathrm{OId}}_{0}^{*} $${\mathrm{ OId}}_{1}^{*} $在集合$ {\mathrm{HU}} $中,并且没有在$ {\mathcal{O}}_{{\mathrm{sc}}} $预言机中查询过。挑战者$ \mathcal{B} $随机选择$ \mathit{\Upsilon }\in \{0{,}1{\}}^{l} $$ k\in {\mathbb{Z}}_{p} $$ b\in \{0{,}1\} $,并计算: $ {C}_{0}=({m}^{*}\parallel \mathit{\Upsilon })\oplus {H}_{1} (e(g,h{)}^{k}) $$ {C}_{1}={h}^{k}\prod \limits_{1}^{\mid {\mathrm{D{R}}}^{*}\mid }(\gamma +{H}_{0}({\mathrm{UI{d}}}_{j})) $$ {C}_{2}=({\overline{C}}^{{{r}_{0}}\cdot {{s}_{b}}}\cdot {\overline{B}}^{{\sum \limits_{1}^{t}}{r}_{i}\cdot a_{i}^{*}}{)}^{\tfrac{1}{\gamma +{H}_{0}\left(OId_{b}^{*}\right)}} $$ {C}_{3}=C_{2}^{\gamma } $$ {C}_{4}={T}^{-k} $$  {C}_{5}={\overline{A}}^{{{s}_{b}}}\cdot {Y}^{-k} $,其中$ a_{i}^{*}\in {\mathrm{Att}}_{b}^{*} $是身份$ {\mathrm{OId}}_{b}^{*} $的属性。挑战者$ \mathcal{B} $通过控制$ {\mathcal{O}}_{h} $预言机生成证明$ \pi $,并返回密文$ {\mathbb{C}}^{\mathbb{*}}=\{{C}_{0},{C}_{1},{C}_{2},{C}_{3},{C}_{4},{C}_{5},\pi \} $给敌手$ \mathcal{A} $
4) 猜测阶段:敌手$ \mathcal{A} $生成$ m_{b}^{*} $的猜测$ {b}^{\prime}\in \{0{,}1\} $。若$ {b}^{\prime} $=$ b $,挑战者$ \mathcal{B} $输出$ \mathbb{C}={g}^{ab} $的猜测值。
$ \mathbb{C}={g}^{ab} $,则$ {\mathbb{C}}^{\mathbb{*}} $是一个有效的密文。因为$ {C}_{2}=({\overline{C}}^{{{r}_{0}}\cdot {{s}_{b}}}\cdot {\overline{B}}^{{\sum \limits_{1}^{t}}{r}_{i}\cdot a_{i}^{*}}{)}^{\tfrac{1}{\gamma +{H}_{0}\left({\mathrm{OId}}_{b}^{*}\right)}}=A_{b}^{*y} $$ {C}_{3}=B_{b}^{*y} $,上述博弈中的挑战模拟攻击与真实攻击难以区分。如果敌手$ \mathcal{A} $能够以不可忽略的概率$ (\mathit{\Pr } [b={b}^{\prime}\mid C={g}^{x\cdot y}]\geqslant \dfrac{1}{2}+\varepsilon ) $优势$ \varepsilon $攻破IMDAS方案的匿名性[14]。由于$ \mathit{\Pr } [b={b}^{\prime}\mid C\neq {g}^{x\cdot y}]=\dfrac{1}{2} $,$ {\mathrm{Ad}}{\nu }^{{\mathrm{DDHP}}(\mathcal{B})}=\dfrac{1}{2}\left(\mathit{\Pr } [b={b}^{\prime}\mid C={g}^{x\cdot y}]-\mathit{\Pr } [b= {b}^{\prime}\mid C\neq {g}^{x\cdot y}]\right)\geqslant \dfrac{\varepsilon }{2} $,这意味着也有一个挑战者$ \mathcal{B} $可以攻破DDHP假设,并具有不可忽略的优势$ \dfrac{\varepsilon }{2} $
证毕。
定理3 若$ n-{\mathrm{SDHP}} $假设成立,则IMDAS方案满足可追溯性。
证明 若敌手$ \mathcal{A} $可以通过证明伪造一个无法追溯到自身的有效密文来证明这一定理,则可以构造一个挑战者$ \mathcal{B} $来解决$ n-{\mathrm{SDHP}} $假设。挑战者$ \mathcal{B} $设置$ n-{\mathrm{SDHP}} $实例$ \{{g}_{0},g_{0}^{\gamma },g_{0}^{{\gamma }^{2}},\cdots,g_{0}^{{\gamma }^{n}}\} $$ {\mathbb{G}}_{2} $循环群中的$ n-{\mathrm{SDHP}} $实例$ \{h,{h}^{\gamma },{h}^{{{\gamma }^{2}}},\cdots,{h}^{{{\gamma }^{n}}}\} $,挑战者$ \mathcal{B} $期望满足$ A=g_{0}^{\tfrac{1}{\gamma +x}} $的一个循环群密钥对$ \left(\begin{matrix}x,A\\ \end{matrix}\right) $。并且,通过定义两个函数$ f(X)=\prod \limits_{1}^{n-1}(X+{w}_{i}) $$ {f}_{i}(X)=\dfrac{f(X)}{X+{w}_{i}} $来进行博弈[15]
1) 注册阶段:挑战者$ \mathcal{B} $随机选择$ \varphi ,{r}_{0},{r}_{1}, {r}_{2},\cdots,{r}_{t}\in \mathbb{Z}_{p}^{t+1} $,设置$ g=g_{0}^{f(\gamma )} $$ {g}^{\prime}={g}^{{{r}_{0}}} $$ {g}_{1}={g}^{{{r}_{1}}} $$ \cdots $$ {g}_{t}={g}^{{{r}_{t}}} $$ T=g_{0}^{\gamma \cdot f(\gamma )} $,和$ Y={T}^{\varphi } $。挑战者$ \mathcal{B} $将主公钥$ {\mathrm{mpk}}=\{pp,e(g,h),{g}^{\prime},{g}_{1},\cdots ,{g}_{t},Y,T,{h}^{\gamma },{h}^{{{\gamma }^{2}}},\cdots ,{h}^{{{\gamma }^{n}}}\} $给敌手$ \mathcal{A} $。敌手$ \mathcal{A} $设置一个集合$ U $,其中包含攻破$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $和属性,并将$ U $发送给挑战者$ \mathcal{B} $。挑战者$ \mathcal{B} $初始化两个空列表$ {\mathcal{L}}_{\text{hash}} $$ {\mathrm{Reg}} $
2) 查询阶段:挑战者$ \mathcal{B} $$ {\mathcal{O}}_{h} $$ {\mathcal{O}}_{{{h}_{0}}} $$ {\mathcal{O}}_{{\mathrm{ck}}} $$ {\mathcal{O}}_{{\mathrm{dk}}} $$ {\mathcal{O}}_{{\mathrm{op}}} $预言机的查询响应为定理1证明中的查询,除了要查询的$ {\mathcal{O}}_{{\mathrm{ck}}} $$ {\mathcal{O}}_{{\mathrm{dk}}} $预言机的身份在集合$ U $中。对于$ {\mathcal{O}}_{{\mathrm{sc}}}(I{d}_{i},{m}_{i},{A}_{i},\mathcal{S}) $预言机的查询,若$ {\mathrm{OI{d}}}_{i}\notin {\mathrm{Reg}} $$ {\mathrm{OI{d}}}_{i}\notin U $,挑战者$ \mathcal{B} $使用随机选择的包含$ {A}_{i} $的属性集注册$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $,并设置密钥凭证$ {A}_{i}={g}^{{{o}_{i}}}\in {\mathbb{G}}_{1} $$ {B}_{i}={g}^{\gamma \cdot {{o}_{i}}} $,其中,$ {o}_{i}{\in }_{R}{\mathbb{Z}}_{p} $。若$ {\mathrm{OI{d}}}_{i}\notin {\mathrm{Reg}} $$ {\mathrm{OI{d}}}_{i}\in U $,则挑战者$ \mathcal{B} $根据$ {\mathrm{CkeyGen}} $算法注册$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}_{i} $。挑战者$ \mathcal{B} $利用注册表$ {\mathrm{Reg}} $中的密钥凭证$ {A}_{i} $和身份$ {\mathrm{OI{d}}}_{i} $,按照$ {\mathrm{Signcrypt}} $算法计算$ {C}_{i,0},{C}_{i,1},{C}_{i,2},{C}_{i,3},{C}_{i,4},{C}_{i,5} $,并通过控制$ {\mathcal{O}}_{h} $预言机计算零知识证明$ {\pi }_{i} $
3) 伪造阶段:敌手$ \mathcal{A} $输出伪造的密文$ {\mathbb{C}}^{\mathbb{*}}= \{C_{1}^{*},C_{2}^{*},C_{3}^{*},C_{4}^{*},C_{5}^{*},{\pi }^{*}\} $,其中,$ {\mathbb{C}}^{\mathbb{*}} $不是挑战者$ \mathcal{B} $返回的$ {\mathcal{O}}_{h} $预言机输出。只有当密文$ {\mathbb{C}}^{\mathbb{*}} $能够通过验证时,敌手$ \mathcal{A} $才会获胜,并且满足$ {\mathrm{OI{d}}}^{*}\leftarrow {\mathrm{Open}}\left({\mathbb{C}}^{\mathbb{*}},{\mathrm{Reg}},{\mathrm{msk}}\right) $ $ ({\mathrm{OI{d}}}^{*}\notin U) $$ \bot \leftarrow {\mathrm{Open}}({\mathbb{C}}^{\mathbb{*}},{\mathrm{Reg}},{\mathrm{msk}}) $。它意味着敌手$ \mathcal{A} $生成一个有效的密文$ {\mathbb{C}}^{\mathbb{*}} $,该密文$ {\mathbb{C}}^{\mathbb{*}} $被溯源到另一个$ {\mathrm{D{O}}}_{i} $的身份$ {\mathrm{OI{d}}}^{*} $或者溯源失败。在这种情况下,由分叉引理知,随着概率大于$ (\varepsilon -\dfrac{1}{p}{)}^{2}/16{q}_{h} $, 挑战者$ \mathcal{B} $可以通过倒推敌手$ \mathcal{A} $得到$ {\nu }^{*} $$ {s}^{*} $和属性集$ {\mathrm{At{t}}}^{*}=\{a_{1}^{*}, a_{2}^{*},\cdots, a_{t}^{*}\} $满足等式$ C_{3}^{*}=C_{2}^{*-{H}_{0}({\mathrm{OI{d}}}^{*})}\cdot ({g}^{\prime}{)}^{{{\nu }^{*}}\cdot {{s}^{*}}}\cdot \prod \limits_{1}^{t}g_{i}^{{\nu }^{*}\cdot a_{i}^{*}} $,其中,$ {q}_{h} $是敌手$ \mathcal{A} $$ {\mathcal{O}}_{h} $预言机的查询次数。由于伪造密文可通过验证,因此,等式$ e\left(C_{3}^{*},h\right)\overset{}{=}e(C_{2}^{*},{h}_{1}) $肯定成立,并获得等式$ e\left(C_{2}^{*-{\nu }^{*}},{h}_{1}\cdot {h}^{{{H}_{0}}({\mathrm{OI{{d}}}^{*}})}\right)\overset{}{=}e\left({\left({g}^{\prime}\right)}^{{{s}^{*}}}\cdot g_{1}^{a_{1}^{*}}\cdots g_{t}^{a_{t}^{*}},h\right) $和一个SDHP假设密钥对$ \left({H}_{0}\left({\mathrm{Ol{d}}}^{*}\right),C_{2}^{*}\left(\left(-{\nu }^{*}\right)/\left({s}^{*}\cdot r_{0}^{*}+ \sum \nolimits_{i=1}^{t}a_{i}^{*}\cdot {r}_{i}\right)\right)\right) $。然后,挑战者$ \mathcal{B} $可以使用分叉引理[16]$ \left({H}_{0}\left({\mathrm{Ol{d}}}^{*}\right), C_{2}^{*}\left(\left(-{\nu }^{*}\right)/\left({s}^{*}\cdot {r}_{0}+\sum \nolimits_{i=1}^{t}a_{i}^{*}\cdot {r}_{i}\right)\right)\right) $ (底为$ g $)转化为$ n- {\mathrm{SDHP}} $假设的解(底为$ {g}_{0} $)。
证毕。
定理4 IMDAS方案满足细粒度身份验证。
证明 首先,若对密文$ {\mathbb{C}}_{i} $中的任何一个元素进行修改,则等式$ {c}_{i}=H({C}_{i,0}\parallel {C}_{i,1}\parallel {C}_{i,2}\parallel {C}_{i,3}\parallel {C}_{i,4}\parallel {C}_{i,5}\parallel {R}_{i,0}\parallel {R}_{i,1}\parallel {R}_{i,2}\parallel {\mathrm{c{m}}}_{i}\parallel {\mathrm{TS}}\parallel {a}_{1}\parallel \cdots \parallel {a}_{\vartheta }) $将不在成立,则密文$ {\mathbb{C}}_{i} $将被丢弃,因而所有被接收的密文都不能被修改。其次,由于零知识证明的可靠性[17],没有持有有效属性凭证$ {\mathrm{cre{d}}}_{i} $或属性凭证$ {\mathrm{cre{d}}}_{i} $中不包含所声称属性的挑战者,将无法生成能够通过零知识证明验证的有效密文[9]。因此,被接受的密文$ {\mathbb{C}}_{i} $必须来自满足特定需求的合法$ {\mathrm{DO}} $
证毕。
定理5 IMDAS方案满足不可否认性。
证明 IMDAS方案攻击者无法伪造可追溯至其他用户的可验证密文。否则,敌手可能会发布错误的数据,使其被追溯到其他用户而不是敌手自己,从而与定理3相矛盾。因此,如果一个有效的密文$ {\mathbb{C}}_{i} $可以溯源至$ {\mathrm{D{O}}}_{i} $,那么该密文$ {\mathbb{C}}_{i} $一定是由$ {\mathrm{D{O}}}_{i} $采集的,因为其他用户无法生成一个可以追溯至其密文。因此,$ {\mathrm{D{O}}}_{i} $不能否认发送了密文$ {\mathbb{C}}_{i} $
证毕。
综上所述,通过以上形式化安全性证明IMDAS方案满足数据机密性、细粒度身份验证、匿名性、可追踪性和不可否认性等特性。

5 实验与分析

为评估所提方案性能的优越性,本节分别从计算复杂性和通信开销两方面将IMDAS方案与其先进方案进行详细比较。

5.1 计算复杂度分析

表2展示了不同方案计算复杂度比较。其中,$ s $表示$ {\mathrm{DR}} $中包含$ {\mathrm{DU}} $的数量;$ \overline{\left| A\right| } $表示$ {\mathrm{DS}} $$ {\mathrm{DO}} $未公开的属性数量;$ {l}_{\delta } $$ {l}_{\zeta } $分别为签密和解密策略中的属性数量;$ {l}_{s} $$ {l}_{d} $分别为$ {\mathrm{DS}} $$ {\mathrm{DR}} $的属性数量; §和†分别表示非外包和外包两种情形。
表 2 不同方案计算复杂度比较

Table 2 Comparison of computational complexity among different schemes

方案 加密/签密/签名成本 解密/解签密/验证成本 密钥大小 密文/签名大小
SLIM[5] $ O({l}_{\delta }+{l}_{\zeta }) $ $ O(l_{\delta }^{2}+{l}_{\zeta }) $ $ O({l}_{s}+{l}_{d}) $ $ O({l}_{\delta }+{l}_{\zeta }) $
LH-ABSC[17] $ O({l}_{\delta }+{l}_{\zeta }) $ $ O(l_{\delta }^{2}+{l}_{\zeta }) $ $ O({l}_{s}+{l}_{d}) $ $ O({l}_{\delta }+{l}_{\zeta }) $
CL-ASC[18] $ O(s) $ $ O(s) $ $ O(1) $ $ O(s) $
MR-CLGSC[19] $ O(s) $ $ O(s) $ $ O(1) $ $ O(s) $
PBIDM[20] $ O(\mid \overline{\mathfrak A}\mid ) $ $ O(\mid \overline{\mathfrak A}\mid ) $ $ O(1) $ $ O(\mid \overline{\mathfrak A}\mid ) $
IMDAS §:$ O(s+\mid {\overline{\mathfrak A}}\mid ) $
†:$ O(\mid \overline{\mathfrak A}\mid ) $
§: $ O(s) $
†: $ O(1) $
$ O(1) $ $ O(\mid \overline{\mathfrak A}\mid ) $
表2 可知,对于加密 / 签密 / 签名成本,SLIM 和 LH-ABSC 方案的计算复杂度与签密、解密策略中的属性数量成正比;CL-ASC 和 MR-CLGSC 方案的加密 / 签密 / 签名计算复杂度与 DR 中 DU 的数量成正比;PBIDM 方案及 IMDAS 方案(外包情形)的加密 / 签密 / 签名计算复杂度与未公开属性的数量成正比。
同时,对于解密 / 解签密 / 验证成本,SLIM 和 LH-ABSC 方案的解密 / 解签密计算复杂度与签密、解密策略中的属性数量成正比;CL-ASC 和 MR-CLGSC 方案的解密 / 解签密计算复杂度与 DR 中 DU 的数量成正比;PBIDM 方案的验证复杂度与未公开属性的数量成正比;IMDAS 方案(外包情形)的解密 / 解签密计算复杂度为恒定值。
对于密钥大小,SLIM 和 LH-ABSC 方案的密钥大小随 DS 和 DR 属性数量的增加呈线性增长;CL-ASC、MR-CLGSC、PBIDM 及 IMDAS 方案(外包情形)的密钥大小保持恒定。
对于密文 / 签名大小,SLIM 和 LH-ABSC 方案的密文 / 签名大小与签密、解密策略中的属性数量成正比;CL-ASC 和 MR-CLGSC 方案的密文 / 签名大小与 DR 中 DU 的数量成正比;PBIDM 方案及 IMDAS 方案(外包情形)的密文 / 签名大小与未公开属性的数量成正比。
综上,通过对表2 的分析可知,与 SLIM、LH-ABSC、CL-ASC、MR-CLGSC 及 PBIDM 方案相比,IMDAS 方案提供了最全面的安全保护。同时,该优势不会带来额外的计算复杂度。

5.2 计算开销评估

本文在一台配置了 AMD Ryzen 9 3950X 16-Core Processor 处理器、64.0 GB 内存 且安装 64 位 Ubuntu-20.04 系统的台式计算机上开展仿真模拟。仿真中涉及的各比较方案均依据文献[21]设置参数,相关参数均为安装程序中预定义的参数[9-10]
SLIM 和 LH-ABSC 方案均为基于属性的签密方案,其性能优势主要体现在 Signcrypt 算法与 Unsigncrypt 算法阶段。基于属性凭证的 PBIDM 方案与 IMDAS 方案的安全属性高度匹配,但由于 PBIDM 方案无法保证机密性,故不涉及任何加密操作。CL-ASC 和 MR-CLGSC 方案均为基于身份 / 无证书的签密方案,且不涉及身份以外的任何属性,二者签密 / 解签密的计算复杂度与 DR 集合中 DU 的数量成正比。因此,二者可作为分析 IMDAS 方案受 DR 集合数量变化影响时的基准方案。综上可知,CL-ASC 和 MR-CLGSC 为基于身份 / 无证书的签密方案,SLIM、LH-ABSC 和 PBIDM 为基于属性的签密方案;由于参数设置不同,不同类型方案之间无法同时进行性能比较。
为呈现 IMDAS 方案的计算开销与 DR 集合中包含 DU 的数量之间的关系,将 IMDAS 方案的未公开属性数量设置为$ |\mathfrak{A}|=1 $ (即基于身份),然后将其与基于身份/无证书的CL-ASC和MR-CLGSC方案进行比较。
图2 展示了不同 DR 集合数量场景下,IMDAS 方案与 CL-ASC、MR-CLGSC 方案计算性能比较结果。由图2(a)可知,在计算单个密文时,CL-ASC、MR-CLGSC 与 IMDAS 方案中,数据发送者的计算开销随 DR 集合数量的增加呈线性增长,且 IMDAS 方案的增长率最低。特别是当 DR 集合数量最大时,CL-ASC 方案的计算时间约为 26 ms,MR-CLGSC 方案约为 65 ms,而 IMDAS 方案的计算时间最低,约为 13 ms。与 CL-ASC、MR-CLGSC 方案相比,IMDAS 方案中数据发送者的计算开销分别降低了 50% 和 80%。
图 2 不同DR集合数量下各方案的计算性能对比

Fig.2 Comparison of computational performance of various schemes under different DR set sizes

图2(b)可知,在恢复明文时,CL-ASC、MR-CLGSC 与 IMDAS 方案中,数据接收者的计算开销保持恒定。当 DR 集合数量最大时,CL-ASC 方案的计算时间约为 5.55 ms,MR-CLGSC 方案的计算时间约为 4.55 ms,而 IMDAS 方案的计算时间最低,约为 4.25 ms。与 CL-ASC、MR-CLGSC 方案相比,IMDAS 方案中数据接收者的计算开销分别降低了 23.42% 和 7.06%。

5.3 存储开销评估

假设$ | {Z}_{p}| $$ \left| {G}_{1}\right| $$ \left| {G}_{2}\right| $$ \left| {G}_{T}\right| $分别为$ {\mathbb{Z}}_{p} $中的标量值、$ {\mathbb{G}}_{1} $中的群元素、$ {\mathbb{G}}_{2} $中的群元和$ {\mathbb{G}}_{T} $中的群元素的字节大小,且设置$ \left| {Z}_{p}\right| =39 $byte,$ \left| {G}_{1}\right| =58 $ byte,$ \left| {G}_{2}\right| =115 $ byte和$ \left| {G}_{T}\right| =456 $ byte。
图3(a)中。为保证对比公平性,将 IMDAS 方案的未公开属性数量设置为$ \left| \overline{\mathfrak A}\right| =1 $。由图3(a)可知,IMDAS 方案的密文大小基本保持 200 byte恒定,而 CL-ASC、MR-CLGSC 方案的密文大小随 DR 集合数量的增加呈线性增长。特别地,当 DR 集合数量为15时,CL-ASC 方案的密文大小超过 1100 byte,MR-CLGSC 方案的密文大小超过 1000 byte,此时 IMDAS 方案的密文大小最低。与 CL-ASC、MR-CLGSC 方案相比,IMDAS 方案的密文大小分别降低了 81.82% 和 80%。
图 3 不同DR集合数量与属性数量下各方案的密文大小对比

Fig.3 Ciphertext size comparison of various schemes under different DR set sizes and attribute numbers

图3 (b) 展示了密文大小与属性数量的性能对比结果。为简化对比,设置$ t-\mid \overline{\mathfrak A}\mid ={l}_{\delta }=\mid \overline{\mathfrak A}\mid $$ {l}_{\zeta }=1 $。由图3 (b) 可知,IMDAS、LH-ABSC、PBIDM 方案的密文 / 签名大小随签密策略中属性数量${l}_{\delta } $的增加呈线性增长,且 IMDAS 方案的增长率最低,而 SLIM 方案的密文大小基本保持恒定。这归因于 SLIM 方案的细粒度访问控制特性,可减少不必要的密文计算与访问操作。

6 结束语

针对物联网数据传输中存在的隐私泄露、非法参与、恶意数据发布等风险,本文提出一种融合多维决策属性的签密可信传输方案。在 IMDAS 方案中,DO 仅需对所属数据执行一次签名,即可与多个 DU 安全地传输共享数据。同时,DO 可选择性披露部分属性凭证,以此证明其具备参与众包计算任务的资质,任意 DR 均可在不获取 DO 真实身份、身份凭证及其他属性的前提下,验证密文的有效性。经严格的安全性分析验证,IMDAS 方案满足预期安全属性,包括机密性、匿名性、细粒度身份验证、可追踪性及不可否认性。此外,仿真实验结果表明,IMDAS 方案相较于所选取的对比方案,具备更低的计算复杂度与通信开销。后续将把所设计的 IMDAS 机制应用于物联网实际应用场景。
1
方晨, 郭渊博. 面向数据安全共享的联邦学习研究综述[J]. 信息安全与通信保密, 2022, (10): 66- 73.

Fang C, Guo Y B. A review of federated learning research for secure data sharing[J]. Information Security and Communications Privacy, 2022, (10): 66- 73.

2
Kumar M, Chand S. A secure and efficient cloud-centric Internet-of-medical-things-enabled smart healthcare system with public verifiability[J]. IEEE Internet of Things Journal, 2020, 7 (10): 10650- 10659.

DOI

3
Ullah I, Khan M A, Khan F, et al. An efficient and secure multimessage and multireceiver signcryption scheme for edge-enabled Internet of vehicles[J]. IEEE Internet of Things Journal, 2022, 9(4): 2688-2697.

4
Peng C, Chen J, Obaidat M S, et al. Efficient and provably secure multireceiver signcryption scheme for multicast communication in edge computing[J]. IEEE Internet of Things Journal, 2020, 7(7): 6056 - 6068.

5
Gong B, Guo C, Guo C, et al. SLIM: a secure and lightweight multi-authority attribute-based signcryption scheme for IoT[J]. IEEE Transactions on Information Forensics and Security, 2024, 19: 1299-1312.

6
Bichsel P, Camenisch J, Neven G, et al. Get shorty via group signatures without encryption[M]//Security and Cryptography for Networks. Berlin, HeidelbergSpringer, 2010: 381-398.

7
Sun J F, Xu G W, Zhang T W, et al. Secure data sharing with flexible cross-domain authorization in autonomous vehicle systems[J]. IEEE Transactions on Intelligent Transportation Systems, 2023, 24 (7): 7527- 7540.

DOI

8
Liu Y J, Zhou Y B, Sun S, et al. On the security of lattice-based fiat-Shamir signatures in the presence of randomness leakage[J]. IEEE Transactions on Information Forensics and Security, 2021, 16, 1868- 1879.

DOI

9
Wang Y, Zhang X, Chen R, et al. Multi-Receiver conditional anonymous singcryption for IoMT crowdsourcing[J]. IEEE Internet of Things Journal, 2024, 11(3): 8401-8413.

10
Zhang Y S, Wang P, Fang L M, et al. Secure transmission of compressed sampling data using edge clouds[J]. IEEE Transactions on Industrial Informatics, 2020, 16 (10): 6641- 6651.

DOI

11
Liu T Y, Lin K J, Wu H C. ECG data encryption then compression using singular value decomposition[J]. IEEE Journal of Biomedical and Health Informatics, 2018, 22 (3): 707- 713.

DOI

12
Liang Y F, Yan H Y, Liu Y N. Unlinkable signcryption scheme for multi-receiver in VANETs[J]. IEEE Transactions on Intelligent Transportation Systems, 2023, 24 (9): 10138- 10154.

DOI

13
Xiao M Y, Li H B, Huang Q, et al. Attribute-based hierarchical access control with extendable policy[J]. IEEE Transactions on Information Forensics and Security, 2022, 17: 1868-1883.

14
Le T V, Hsu C L, Chen W X. A hybrid blockchain-based log management scheme with nonrepudiation for smart grids[J]. IEEE Transactions on Industrial Informatics, 2022, 18 (9): 5771- 5782.

15
Liu S H, Chen L Q, Wang H Q, et al. O3HSC: outsourced online/offline hybrid signcryption for wireless body area networks[J]. IEEE Transactions on Network and Service Management, 2022, 19 (3): 2421- 2433.

DOI

16
Wan Z G, Zhou Y, Ren K. Zk-AuthFeed: protecting data feed to smart contracts with authenticated zero knowledge proof[J]. IEEE Transactions on Dependable and Secure Computing, 2023, 20 (2): 1335- 1347.

DOI

17
Yu J G, Liu S H, Wang S L, et al. LH-ABSC: a lightweight hybrid attribute-based signcryption scheme for cloud-fog-assisted IoT[J]. IEEE Internet of Things Journal, 2020, 7(9): 7949-7966.

18
Deng L, Wang B, Gao Y, et al. Certificateless anonymous signcryption scheme with provable security in the standard model suitable for healthcare wireless sensor networks[J]. IEEE Internet of Things Journal, 2023, 10 (18): 15953- 15965.

DOI

19
Shen J, Gui Z, Chen X, et al. Lightweight and certificateless multi-receiver secure data transmission protocol for wireless body area networks[J]. IEEE Transactions on Dependable and Secure Computing, 2022, 19 (3): 1464- 1475.

DOI

20
Bao Z, He D, Khurram Khan M, et al. PBidm: Privacy-preserving blockchain-based identity management system for industrial internet of things[J]. IEEE Transactions on Industrial Informatics, 2023, 19 (2): 1524- 1534.

21
Barbulescu R, Duquesne S. Updating key size estimations for pairings[J]. Journal of Cryptology, 2019, 32 (4): 1298- 1336.

DOI

Outlines

/