可公开验证的高效无证书聚合签密方案

2022-10-16 12:27陈虹侯宇婷郭鹏飞周沫赵菊芳肖成龙
计算机工程 2022年10期
关键词:私钥挑战者公钥

陈虹,侯宇婷,郭鹏飞,周沫,赵菊芳,肖成龙

(1.辽宁工程技术大学 软件学院,辽宁 葫芦岛 125105;2.汕头职业技术学院 计算机系,广东 汕头 515078;3.汕头大学 工学院,广东 汕头 515063)

0 概述

签名和加密技术能够保证数据传输的安全性与可靠性,但其开销较大且效率较低。文献[1]对传统的“先签名后加密”的方式进行优化,并提出签密,即加密和签名同时实现,能够保证信息安全传输,减少计算量和传输开销。在密码领域,研究人员对签密进行研究,提出基于身份的签密[2]、无证书签密[3-5]、聚合签密[6-8]、多接收者签密[9-10]、广义签密[11]等具有特殊属性的签密方案。文献[3]在无证书密码环境下提出签密方案,提高了计算效率和安全性。文献[4]提出一种无证书签密方案并验证其安全性,在方案的设计中未涉及双线性映射运算,具有较高的计算效率。但文献[5]证明上述方案不满足安全性,并给出具体的攻击方案。

认证的消息越多,签名方案的运算效率越低。聚合签名[12-13]能够对大量签名进行同步验证。其中,基于无证书密码环境设计的聚合签名算法[14-16],在计算量和通信开销方面更具优势。文献[16]提出一种无证书聚合签名方案,为了降低用户间的耦合度,该签名方案仅使用公共参数和个人信息,使得在多对一的通信系统中,用户可灵活地认证消息。与文献[14]的签名方案相比,文献[16]的运算量约减少了1/2,有效应用在资源有限的网络环境中。文献[17]提出一个高效的签密方案,该方案将多个密文消息相聚合,提高传输效率。聚合签密方案在实际应用中对运算效率有很高的要求,但大多数方案都存在运算复杂[18-19]、效率低[20-21]的问题。文献[22]将无证书签密与聚合技术相结合提出一种无证书聚合签密(CLASC)方案,具有较高的可靠性。文献[23]提出更加高效的CLASC 方案,该方案采用双线性映射运算,运算效率较高,但是安全性较低。文献[24]提出高安全性的常数对CLASC 方案,并对文献[23]的高效算法进行改进,在保证运算效率的前提下提高了安全性。文献[25]将多接收者签密应用于异构密码体制中,设计一个异构环境下的聚合签密算法,虽然满足隐私保护的需求,但是存在安全问题。文献[26]指出文献[25]方案存在的问题并对其算法进行优化,提供了详细的安全证明。文献[27]将聚合签名与加密技术应用于全匿名区块链中,解决了在比特币区块链系统中的隐私保护问题。文献[28-30]提出聚合签密的相关方案[31],其性能满足车载系统的需求,但运算效率还存在较大的提升空间。

本文在上述签名方案基础上,提出一种可公开验证的高效CLASC 方案。在无证书的密码环境中,采用双线性映射运算将双方身份信息隐藏在签名和密文中,在保证签密安全和提高效率的同时,能够有效保护用户隐私。基于随机预言模型(Random Oracle Model,ROM)验证本文方案同时满足适应性选择密文攻击下的不可区分性以及适应性选择消息攻击下的不可伪造性。

1 相关基础

1.1 双线性映射

加法、乘法循环群分别表示为G1、G2,阶都是素数q,P表示G1的生成元。双线性映射e:(G1·G1)→G2的特性主要有以下3 个:1)双线性,对于任意的Q∈G1,存在a、b∈,使e(aP,bQ)=e(P,Q)ab;2)非退化性,e(P,P)≠1;3)可计算性,对于任何的Q、R∈G1,e(Q,R)皆可计算。

1.2 困难问题

本文提出的签密方案依赖以下数学困难问题,并且攻击者无法在多项式时间内攻破这些问题。

定义1(计算双线性Diffie-Hellman(CBDH)问题)给定任意参数P、aP、bP、cP∈G1(a,b,c∈),得出e(P,P)abc是困难的。

定义2(计算性Diffie-Hellman(CDH)问题)给定任意参数P、aP、bP∈G1(a,b∈),得出a、b、P是困难的。

1.3 无证书聚合签密方案

无证书聚合签密方案的ui表示发送者,uj表示接收者,主要有9 个步骤:1)系统初始化,由密钥生成中心(Key Generation Center,KGC)执行,输入初始化所需参数k,选择系统参数parameters(公开)、主密钥θ(不公开);2)生成部分私钥,由KGC 执行,输入身份信息ui,计算用户部分私钥Di,并将Di秘密传送给用户ui;3)生成秘密值,由用户执行,输入身份信息ui,输出秘密值xi∈;4)生成用户私钥,由用户执行,输入身份信息ui、秘密值xi、用户部分私钥Di,输出用户私钥ski;5)生成用户公钥,由用户执行,输入身份信息ui、秘密值xi、系统公开参数parameters,输出用户公钥pki;6)签密,由用户执行,输入ui、uj、parameters、私 钥ski、公 钥pkj、明文mi,输出密文σi;7)聚合签密,由聚合者执行,输入身份信息ui(1 ≤i≤n)的n个密文σi(1 ≤i≤n),输出聚合密文σ;8)解签密,由用户执行,输入uj、parameters、私 钥skj、公 钥pki、密文σi,得到明文mi并对mi进行验证,若验证成功,则将mi输出,否则操作失败;9)聚合解签密,由用户执行,输入聚合密文σ、系统参数parameters、用户私钥skj、用户公钥pki(1 ≤i≤n),得到明文mi(1 ≤i≤n)并对mi(1 ≤i≤n)进行验证,若验证成功,则将mi(1 ≤i≤n)输出,否则操作失败。

1.4 无证书聚合签密安全模型

根据文献[15]刻画的敌手类型,CLASC 系统将面临敌手A1和敌手A2的攻击。敌手A1扮演特殊的用户,不能获知系统主密钥,但可调换用户公钥。敌手A2扮演不可靠的KGC,能获知系统主密钥,但不能更换用户公钥。CLASC 方案的游戏攻击模型结构如图1 所示。

图1 无证书聚合签密方案的游戏攻击模型结构Fig.1 Structure of game attack model of certificateless aggregate signcryption scheme

定义3(机密性)在适应性选择密文攻击下CLASC 具有密文不可区分性。在ROM 中,只有在多项式时间内不存在任何攻击者时,敌手以不可忽略的优势在游戏1(针对第一类攻击者的机密性)和游戏2(针对第二类攻击者的机密性)中取胜。

1.4.1 游戏1

A1与挑战者C通过以下方式进行信息交互:

1)初始化阶段。由KGC 进行系统初始化,公开parameters。

2)问询阶段。A1向C进行问询并发送任意的输入,C将其传送给ROM,ROM给C输出相应的结果,由C将结果返回给A1。A1执行以下问询:(1)Hash 问询,A1对所有Hash 随机问询,并将相关信息发送给C,C将结果传送给A1;(2)部分私钥问询,A1能询问ui的部分私钥,C通过执行相关算法得到Di并返回给A1;(3)私钥问询,A1能询问ui的私钥,C通过执行相关算法得到sk,并返回给A1;(4)公钥问询,A1能询问ui的公钥,C通过执行相关算法得到pki,并返回给A1;(5)公钥替换问询,A1能对ui的公钥进行替换,C收到问询后,将原来的公钥pki替换成新公钥pk′i;(6)签密问询,A1选择两个用户ua、ub分别作为发送方和接收方,并选择一个消息ma进行签密问询,C收到相应的问询后,输入参数,执行签密算法,将生成的密文σa返回给A1;(7)聚合签密问询,A1选择用户ui(1 ≤i≤n)、ub分别作为发送方和接收方,并选择消息mi(1 ≤i≤n)进行聚合签密问询,C收到问询后,输入参数,执行聚合签密算法,将生成的密文σ返回给A1;(8)解签密问询,A1利用两个用户ua、ub和密文σa向C进行解签密问询,C收到问询后,输入参数,执行解签密算法,并将生成的明文ma返回给A1;(9)聚合解签密问询,A1利用用户ui(1 ≤i≤n)、ub和密文σ向C进行聚合解签密问询,C收到相应的问询后,输入参数,执行聚合解签密算法,并将生成的明文mi(1 ≤i≤n)返回给A1。

3)挑战阶段。A1选择用户ui、uj分别作为发送方和接收方,并选择两个长度相同的明文m0和m1,要求ui、uj执行过私钥问询,同时ui不能既执行过公钥替换问询又执行过部分私钥问询,uj没有执行过部分私钥问询。C随机选取b∈{0,}1,输入相关参数并执行签密算法,将生成的密文σ*返回给A1。

4)第二阶段问询。A1进行的问询与问询阶段相似,但不允许对ui、uj问询私钥,如果ui、uj在挑战阶段之前进行过公钥替换问询,则不能再问询其部分私钥。A1也不能对密文σ*进行解签密问询。

5)猜测阶段。A1输出b′,若b′=b,则A1赢得游戏。

1.4.2 游戏2

A2与挑战者C通过以下方式进行信息交互:

1)初始化阶段。由KGC 进行系统初始化,公开parameters,并将θ传给A2。

2)问询阶段。与游戏1 的问询阶段相似,但没有公钥替换问询以及部分私钥问询。根据刻画的敌手类型可知,因为敌手A2不能替换用户公钥,所以无需执行公钥替换问询,且A2可以得到系统主密钥,能够计算出用户的部分私钥,也无需执行部分私钥问询。

3)挑战阶段。A2选择用户ui、uj分别作为发送方和接收方,并任意选择两个明文m0和m1。m0和m1的长度相等,且要求不能对ui、uj进行私钥问询。C随机选取b∈{0,}1,输入相关参数并执行签密算法,将生成的密文σ*返回给A2。

4)第二阶段问询。A2进行的问询与问询阶段相似,但不允许对ui、uj进行私钥问询(若对ui、uj执行私钥问询得到其私钥,则可对密文进行解密得到明文,游戏终止)。A2也不能对密文σ*进行解签密问询。

5)猜测阶段。A2输出b',若b'=b,则A2赢得游戏。

在游戏1 和游戏2 中,挑战者与敌手之间关于密文机密性的交互示意图如图2 所示。

图2 密文机密性交互的示意图Fig.2 Schematic diagram of ciphertext confidentiality interaction

定义4(不可伪造性)CLASC 在适应性选择消息攻击下具有消息不可伪造性,在ROM 中,只有当不存在任何多项式有界的攻击者时,以不可忽略的优势在游戏3(针对第一类攻击者的不可伪造性)和游戏4(针对第二类攻击者的不可伪造性)中取胜。

1.4.3 游戏3

A1与挑战者C通过以下方式进行信息交互:1)初始化阶段,执行相关操作,公开parameters;2)问询阶段,与游戏1 的问询阶段相似;3)伪造阶段,A1输出用户的身份信息ui、uj和明文mi的密文σ*,若A1没有对uj进行过部分私钥问询和私钥问询,没有对密文σ*进行过签密问询,且密文σ*有效,则A1赢得游戏。

1.4.4 游戏4

A2与挑战者C通过以下方式进行信息交互:1)初始化阶段,由KGC 进行系统初始化,公开parameters,并将θ传给A2;2)问询阶段,与游戏2 的问询阶段相似;3)伪造阶段,与游戏3 的伪造阶段相似;若A2没有对uj进行过私钥问询,没有对密文σ*进行过签密问询,且密文σ*有效,则A2赢得游戏。

在游戏3 和游戏4 中挑战者与敌手之间关于签名不可伪造性交互的示意图如图3 所示。

图3 签名不可伪造性交互的示意图Fig.3 Schematic diagram of signature unforgeability interaction

2 本文方案

2.1 方案描述

本文设安全参数为k,生成大素数p、q(q|p-1)。(G1,+)和(G2,·)为循环群,其阶均为q,P是G1的一个生成元。双线性映射e:(G1·G1) →G2,3 个安全的哈希函数分别为H1:{0,1}*→G1,H2:{0,1}*×{0,1}*×G1→G2,H3:{0,1}*→{0,1}lm(lm 表示消息比特长度)。本文构造的CLASC 方案主要分为以下8 个步骤:

1)系统初始化。由KGC 进行系统初始化,随机选取θ∈为系统主密钥并保密,计算Ppub=θP,公开系统参数parameters={G1,G2,e,P,Ppub,H1,H2,H3}。

2)生成部分私钥。由KGC 生成部分私钥,计算Qi=H1(ui),Di=θQi,并将Di秘密传送给用户ui。

3)生成用户私钥。用户私钥由用户参与生成,验证等式e(Qi,Ppub)=e(Di,P),若等式成立,则表示部分私钥合法。用户ui随机选取秘密值xi∈,产生用户私钥对ski=(xi,Di)。

4)生成用户公钥。用户私钥由用户参与生成,计算公钥pki=xi P。

5)签密。发送方ui向接收方uB发送明文mi,发送方ui的执行步骤主要有以下5 个:(1)随机选取ri∈,Ri=ri P,Ui=riQi;(2)αi=e(QB,ri Ppub),Ti=H3(uB,αi,Ri,pkB,ripkB);(3)ci=(mi||ui)⊕Ti;(4)hi=H2(ci||Ui||uB);(5)vi=(ri+hi)(xiQi+Di),输出密文σi=(Ri,Ui,ci,vi)。

6)聚合签密。由聚合者进行聚合签密,主要有以下4个步骤:(1)发送方ui(1 ≤i≤n)对明文mi(0 ≤i≤n)执行上述步骤1~步骤5 的签密操作;(2)将签密结果发送给聚合者(任意用户均可为聚合者);(3)聚合者接收密文σi(0 ≤i≤n),计算V=;(4)输出聚合密文σ=

用户的密钥生成过程如图4 所示。

图4 用户密钥生成过程Fig.4 Generation process of user secret key

在初始化阶段中,KGC 生成θ和Ppub,并公开参数parameters。在生成部分私钥阶段中,KGC 根据用户身份计算部分私钥,并将其安全地传送给用户。在用户密钥生成阶段中,用户通过等式e(Qi,Ppub)=e(Di,P)验证部分私钥的合法性,如果合法,则任取秘密值xi∈,并将收到的部分私钥与秘密值相结合得到用户的私钥对ski=(xi,Di),使得用户私钥更加安全。在生成用户公钥阶段中,用户将秘密值与生成元相结合,生成用户的公钥pki。

本文提出的CLASC 方案流程如图5 所示。在签密阶段,n个用户根据公开参数parameters 和用户密钥,使用双线映射αi=e(QB,ri Ppub)将明文mi(1 ≤i≤n)加密成密文ci(1 ≤i≤n),在保证加密过程安全性的同时提高了效率,当每个用户签密后对密文进行聚合,形成聚合密文σ发送给接收方。接收方收到密文σ后,根据公开参数parameters 和用户密钥,使用双线性映射=e(DB,Ri)将密文σ求解出明文mi,然后验证等式是否成立,进而证明聚合签名是否合法,如果合法,接收方接收明文mi,否则将丢弃接收到的信息。

图5 本文无证书聚合签密方案流程Fig.5 Procedure of the proposed certificateless aggregate signcryption scheme

2.2 正确性证明

本文方案的正确性分析包括密钥正确性、密文可恢复性和发送者合法性。

1)密钥正确性,用户密钥由KGC 的部分私钥和用户手中的秘密值组成,为了保证KGC 传来密钥的可靠性,通过等式e(Qi,Ppub)=e(Qi,θP)=e(θQi,P)=e(Di,P)验证KGC 传递的部分私钥的正确性。

3 本文方案的安全性分析

CLASC 方案结合加密技术与数字签名,加密技术负责保证机密性,数字签名负责保证认证性,两者独立存在,共同满足消息的安全需求。因此,本文主要从机密性、不可伪造性和可公开验证性对方案进行安全性分析。

3.1 机密性

机密性是指除指定接收方以外,其他任何人或机构均不能成功破解密文,并获取明文消息。

定理1在ROM 中的CBDH 问题下,在概率多项式时间内,若存在敌手A1进行H1、H2、H3、公钥、部分私钥、聚合签密、解签密的问询次数至少为,能够以不可忽略的优势ε赢得游戏IND-CCA2,则可能存在挑战者C以概率≥ε/q1q2q3(1-qun/2k)解决CBDH 问题。

证明假定敌手A1能以不可忽略的优势ε赢得游戏IND-CCA2,则挑战者C在敌手A1的协助下解决CBDH 困难问题,即挑战者C拥有CBDH 实例{P,aP,bP,cP},求解e(P,P)abc的值。C与A1进行如下交互:

1)初始化阶段。由挑战者C执行,设置Ppub=aP,并公 开parameters={G1,G2,e,P,Ppub,H1,H2,H3}。在 以下的问询过程中可以将ROM 与挑战者C看作1 个实体。

2)问询阶段。初始化列表L1、L2、L3、LK均为空,A1进行以下多项式有界次问询:

(1)H1问询。C维护列表L1={ui,Qi,πi,Di,gi},当A1对H1(ui)进行问询时,若该问询已存在列表L1中,则给A1返回对应的Qi;否则C丢硬币选择gi∈{0,1},(其中,取0 的概率为δ,取1 的概率为1-δ),并随机选取πi∈。若gi=0,C返回Qi=πibP;若gi=1,C给A1返回Qi=πi P,并将Qi添加到列表L1中。

(2)H2问询。C维护列表L2={uB,ci,Ui,ri,hi},当A1对H2(uB||ci||Ui)进行问询时,若该问询已存在列表L2中,则给A1返回对应的hi;否则C随机选取ri∈(1 ≤i≤n)并进行H1问询得到Qi,计算Ui=riQi,任取hi∈G2返回给A1,并将其添加到列表L2中。

(3)H3问询。C维护列表L3={uB,αi,Ri,pkB,ripkB,Ti},当A1对H3(uB,αi,Ri,pkB,ripkB)进行问询时,若该问询已存在列表L3中,则给A1返回对应的Ti;否则任取Ti∈{0,1}lm返回给A1,并将其添加到列表L3中。

(4)部分私钥问询。当A1输入ui进行问询时,C查询列表L1,若该问询已存在列表L1中,则给A1返回对应的部分私钥Di;否则,若gi=0,则游戏终止;若gi=1,C返回Di=πiap给A1,并将其添加到 列表L1中。

(5)秘密值问询。C维护列表Lk={ui,βi,pki,Yi},当A1输入ui进行问询时,若该问询已存在列表LK中,则给A1返回对应的βi;否则,若Yi=0,则取消问询;若Yi=1,C随机选取βi∈返回给A1,并将其添加到LK中。

(6)公钥问询。当A1输入ui进行问询时,C查询列表LK,若该问询已存在列表LK中,则给A1返回对应的公钥pki;否则,若βi存在,计算pki=βi P并返回给A1,并将其添加到列表LK中;若βi不存在,C随机选取βi∈,计算pki=βi P返回给A1,并设置Yi=1,将其添加到LK中。

(7)公钥替换问询。当A1输入进行问询时,C查询列表。若pki存在列表LK中,则用pki'替换pki,并设置Yi=0;否则将新的pki'添加到LK中,并设置Yi=0。

(8)签密问询。当A1输入(ui,uB,mi)进行问询时,C查询列表L1中的gB。若gB=0,则取消问询;若gB=1,按照原签密算法对明文mi进行签密,并返回签密结果σi=(Ri,Ui,ci,vi)。

(9)聚合签密问询。当A1输入(u1,u2,…,un,uB,m1,m2,…,mn)进行问询时,C对(ui,mi,uB)(1 ≤i≤n)进行签密问询得到签密结果σi=(Ri,Ui,ci,vi)(1 ≤i≤n),然后计算,最后返回

4)第二阶段问询。在该阶段,A1进行的问询同问询阶段相似,但不允许对uB部分私钥问询,A1也不能对σ*执行聚合解签密问询。

5)猜测阶段。在进行足够多的问询以后,A1输出b',若b'=b,则A1赢得游戏;否则游戏失败。C可以从L3对应的数组中得到αi,C从L1对应的数组中得到πB,这样的数组必定存在(否则在解签密问询中游戏终止)。其中,Ri=cP,最后作为CBDH 问题的解。证明如下:

在问询阶段中,如果A1对uB进行过部分私钥问询,以及H2、H3问询,则C失败。A1未进行过部分私钥以及H2、H3问询的概率至少为1/q1、1/q2、1/q3。在解签密问询中,C拒绝一个有效签密的概率为qun/2k。因此,C解决CBDH 问题的概率为ε/q1q2q3(1-qun/2k)。因为A1是以不可忽略的优势赢得游戏,与定义3 相悖,所以在多项式时间内,挑战者C不能解决CBDH 问题。因此,本文方案具有机密性。

定理2在ROM 中的CDH 问题下,在概率多项式时间内若存在敌手A2进行H1、H2、H3、公钥、秘密值、聚合签密、解签密的问询次数至少为qk、qs、qE、qun,能够以不可忽略的优势ε赢得游戏IND-CCA2,则可能存在挑战者C以概率ε/q1q2q3(1-qun/2k)解决CDH 问题。

证明假定敌手A2能以不可忽略的优势ε赢得游戏IND-CCA2,则挑战者C在敌手A2的协助下解决CDH 困难问题,即挑战者C拥有CDH 实例{P,aP,cP},求解a、c、P的值。C将与A2进行如下交互:

3.2 不可伪造性

不可伪造性是指只有发送方的签名能通过验证。

定理3在ROM 中的CDH 问题下,在概率多项式时间内若存在敌手A1进行H1、H2、H3、公钥、部分私钥、聚合签密、解签密的问询次数至少为、qk、qs、qE、qun,能够以不可忽略的优势ε取得游戏EUF-CMA 的胜利,则可能存在挑战者C以概率≥ε(1-δ)qs+n-1δ解决CDH 问题。

证明假定敌手A1能以不可忽略的优势ε赢得游戏EUF-CMA,则挑战者C能在敌手A1的协助下解决CDH 困难问题,即挑战者C拥有CDH 实例{P,aP,bP},求解a、b、P的值。C与A1进行如下交互:

因此,C成功解决了CDH 问题。

如果A1在问询阶段进行部分私钥问询,在伪造阶段伪造出的签密无效,且g1=0,gi=1(2 ≤i≤n),则C失败。上述事件的概率分别为、ε和δ(1-δ)n-1,因此,C解决CDH 问题的概率为。因为A1是以不可忽略的优势赢得游戏,与定义4 相悖,所以在多项式时间内,挑战者C不能解决CDH 问题。因此,本文方案具有不可伪造性。

定理4在ROM 中的CDH 问题下,在概率多项式时间内若存在敌手A2进行H1、H2、H3、公钥、秘密值、聚合签密、解签密的问询次数至少为qk、qs、qE、qun,能够以不可忽略的优势ε取得游戏EUF-CMA 的胜利,则可能存在挑战者C以概率解决CDH 问题。

证明假定敌手A2能以不可忽略的优势ε赢得游戏EUF-CMA,则挑战者C在敌手A2的协助下解决CDH 困难问题,即挑战者C拥有CDH 实例{P,aP,bP},求解a、b、P的值。C与A2进行如下交互:

因此,C成功解决了CDH 问题。

如果A2在问询阶段进行秘密值问询,在伪造阶段伪造出的签密无效,且g1=0,gi=1(2 ≤i≤n),则C失败。上述事件的概率分别为、ε和δ(1-δ)n-1,因此,C解决CDH 问题的概率为因为A2是以不可忽略的优势赢得游戏,与定义4 相悖,所以在多项式时间内,挑战者C不能解决CDH 问题。因此,本文方案具有不可伪造性。

3.3 可公开验证性

4 性能分析

CLASC 方案的主要性能是通信效率、计算代价和存储开销。与其他方案相比,一个签密方案具有更少的计算量或更高安全性,则称该方案的性能更优。计算量主要包括发送者和接收者的计算量以及计算过程中的操作总量,其操作包括双线性映射运算、点乘运算和指数运算等。安全性主要包括机密性、不可伪造性。

本文方案与文献[16,26,28-30]方案的安全性和可公开验证性的对比如表1 所示,其中,√表示具有安全性和可公开验证性,×表示没有这两种性质。

表1 不同方案的性能对比Table 1 Performance comparison among different schemes

不同方案的运算量对比如表2 所示。据文献[7]可知,p(双线性对运算)的运算代价为20.01 ms,e(指数运算)的运算代价为11.20 ms,s(点乘运算)的运算代价为0.83 ms,如哈希、异或等运算相对于无证书聚合密码体制的计算成本可以忽略。假设参与聚合签密的用户有n个,本文方案的签密阶段包括2 个运算:1)4n次点乘运算,Ri=ri·P(1 ≤i≤n),Ui=ri·Qi,αi=e(QB,ri·Ppub),Ti=H3(uB,αi,Ri,pkB,ri·pkB);2)n次双线性映射运算,αi=e(QB,ri·Ppub)。签密阶段的运算代价为(p+4s)n≈(20.01+4×0.83)n=23.33nms。解签密阶段包括(n+2)次双线性映射运算:′=e(DB,Ri),e(V,P)=2n次点乘运算:。解签密阶段的运算代价为(p+2s)n+2p≈(20.01+2×0.83)n+2×20.01=21.67n+40.02 ms。因此,本文方案的总运算代价为(2p+6s)n+2p≈(2× 20.01+6× 0.83)n+2× 20.01=45n+40.02ms。

表2 不同方案的运算量对比Table 2 Computation comparison among different schemes

从表1 和表2 可以看出,对数量相同的消息执行聚合签密操作,与文献[26,28-30]方案相比,本文方案运算代价大幅降低。文献[28]是关于道路状况的车载系统签密方案,签密阶段未使用双线性映射运算,运算效率在所比较的文献中最高,但是聚合验证和解签密阶段均使用了2n次双线性映射运算,且在聚合验证阶段需使用接收者的私钥信息vskj,1、vskj,2,因此,不满足可公开验证性。本文方案与文献[26,30]方案相比,解签密阶段均减少了2n次双线性映射运算。文献[29]方案是关于车载系统的匿名异构签密方案,本文方案的解签密阶段相较于文献[29]方案减少了n次双线性映射运算,且文献[29]方案在聚合验证阶段需要用到kj的值,kj=H2(Rsj),Rsj=e(Uj,1,Sr),Sr=。若通过Sr计算kj需要系统主密钥,系统主密钥不能被任意第三方得知。因此,文献[29]方案不满足可公开验证性。文献[26,28-30]方案在聚合验证阶段需要的双线性映射运算次数均与用户的数量有关,而本文方案仅需2 次双线性映射运算,与用户数量无关。因此,本文方案具有较高的运算效率。

与文献[16]方案相比,本文方案增加了加密的功能,并在签名阶段将接收者的身份信息隐藏其中,能够有效保护用户隐私。在运算代价方面,本文方案与文献[16]方案在聚合验证阶段均需2 次双线性映射运算。由于文献[16]方案不具备加密功能,因此其他阶段的运算代价不做对比。在安全性方面,文献[16]方案不满足机密性,仅满足签名方案所需的不可伪造性。因此,本文方案的性能更优。

以上是通过理论推导得到的性能分析,本文还通过仿真实验验证运算效率。仿真实验环境:Intel Core i5-5200@2.20 GHz CPU,4 GB RAM PC,Ubuntu 18.04.5 操作系统,Python3.6.9,pypbc 库。

在本文方案的仿真实验核心伪代码中,明文|m|长度随机

系统初始化阶段是生成公开参数,关键代码如下:

由上述理论推导得到的性能分析可知,本文方案性能的影响因素是运算代价、安全性及可公开验证性。其中,运算代价是指方案在整个计算过程中,双线性映射运算、点乘运算和指数运算操作所花费的时间。本文方案的签密总时间随消息个数的变化曲线如图6 所示。在签密阶段,当消息数m分别为200、400、600、800、1 000、1 200 时,签密时间分别约为5.084 s、10.164 s、17.345 s、25.329 s、35.345 s、45.499 s。

图6 本文方案的签密时间随消息个数的变化曲线Fig.6 Change curve of signcryption time of the proposed scheme with the number of messages

在解签密阶段,本文方案使用和未使用聚合签密技术的总解签密时间对比如图7 所示。

图7 本文方案使用和未使用聚合签密技术的解签密时间对比Fig.7 Decryption time comparison of the proposed scheme with and without aggregate signcryption technology

当消息数m分别为200、400、600、800、1 000 和1 200 时,本文方案使用聚合签密技术的解签密时间分别约为2.192 s、4.328 s、6.487 s、8.654 s、10.898 s、13.089 s。若未使用聚合签密技术,m个签密消息逐条进行解密验证所需的时间分别约为10.154 s、20.288 s、30.378 s、40.630 s、50.430 s、61.073 s。从图6 和图7可以看出,消息的签密时间比解签密时间高出约1 倍。当消息数量呈倍数增长时,签密总时间和解签密总时间也以倍数增长。因此,本文方案在解签密阶段使用的运算代价为2 次双线性映射运算的聚合验证技术,能够大幅提高解签密的运算效率。

5 应用场景设计

本文方案可应用在物联网(Internet Of Things,IOT)中,IOT 经过既定的协议,依赖互联网实现信息共享,将物与物、人与物之间的信息进行交换,达到相互连通的效果。IOT 主要由感知节点(Sensory Node,SNi,1 ≤i≤n)、网关节点(Gateway Node,GN)、云平台服务器(Cloud Platform Server,CPS)和应用终端(Application Terminal,AT)组成。IOT 结构如图8 所示。

图8 IOT 结构Fig.8 IOT structure

SN 将收集的数据发送到GN,GN 自动保存收集的数据,在一定的时间间隔内将数据周期性地传输至CPS,CPS 将得到的数据进行管理和分析,并发送给AT,以供AT 使用。其中,GN 与GN、CPS 与GN、GN 与SN 之间为无线通信。使用无线传输的数据容易受到网络攻击,如恶意假冒、窃听、数据篡改等,安全方面存在漏洞,导致其发展缓慢。签密技术能够满足IOT 中数据传输所需的机密性和不可伪造性。

在IOT 中,1 个GN 通常需要连接多个SN,GN 将收到的信息进行聚合并通过CPS 传送给AT,要求AT 在短时间内验证大量签密消息,对AT 的配置、成本要求较高,需要安全、高效、可靠的验证技术用于大批量密文的验证。本文提出的CLASC 方案应用在IOT 环境中,能够降本增效,保证信息的完整性和安全性。在本文方案中n个签密者对应IOT 中的n个SN,接收者对应AT,n个SN 产生n个明文消息并发送给GN,GN 将接收到的消息进行聚合并通过CPS 发送给AT,由AT 进行验证并解签密,有效防止篡改消息、假冒消息及泄露消息等。

6 结束语

本文构造可公开验证的高效无证书聚合签密方案。基于无证书密码体制解决密钥托管的问题,并且在ROM 下验证该方案的安全性,在对数据的真实性产生质疑时,通过信任第三方公开验证发送者的合法性。分析结果表明,本文方案具有较高的运算效率,仅使用固定次数的双线性映射运算,在保证传输数据安全的同时提高传输效率,使其适用于移动支付、车载系统和电子银行等场景中。下一步将在无证书聚合签密方案中通过随机数重用的方法,减少解密阶段的冗余信息,从而降低系统的存储开销和运算量。

猜你喜欢
私钥挑战者公钥
“挑战者”最后的绝唱
比特币的安全性到底有多高
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
图解英国挑战者-2主战坦克
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
基于秘密共享的IBE移动密码系统
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
建筑节能领域的挑战者 孟庆林