改进的无线性对固定轮数无证书群组密钥协商协议
单纯 , 胡康文 , 薛静锋 , 胡昌振 , 赵小林     
北京理工大学 软件学院, 软件安全工程技术北京市重点实验室, 北京 100081
摘要:针对现有无证书群组密钥协商协议无法在敌手具有替换用户公钥或获知私钥生成中心(key generation center,KGC)主秘密密钥2类攻击能力下满足安全性,该文提出一种显式认证的无证书群组密钥协商协议。该协议通过在第二轮中添加签名消息、签名与群组用户身份集合、第一轮所有广播消息、第二轮用户发送的消息,保证了消息的新鲜性和身份的认证;对协议第二轮消息进行改进,使得敌手无法利用邻居节点进行攻击。分析结果表明:与其他无证书群组密钥协商协议相比,本协议可抗具有2类攻击能力的敌手,且计算量更小。
关键词无证书    群组密钥协商协议    无线性对    
Improved pairing-free constant round certificateless authenticated group key agreement protocol
SHAN Chun, HU Kangwen, XUE Jingfeng, HU Changzhen, ZHAO Xiaolin    
Beijing Key Laboratory of Software Security Engineering Technology, School of Software, Beijing Institute of Technology, Beijing 100081, China
Abstract: Current certificateless group key agreement protocols are not secure when adversaries can replace the participants' public keys or the key generation center (KGC) master secret key is known. An improved protocol appends a signature in the second round to eliminate this weakness. The signature is related to the group identity, the broadcast messages in the first round and the computed message in the second round, to ensure the protocol freshness and the entity authenticity. The message in the second round guarantees that the adversary cannot attack the protocol by corrupting neighboring entities. The improved protocol is resilient to these two attacks and is more efficient other certificateless group protocols.
Key words: certificateless public key cryptography     group key agreement     paring-free    

群组密钥协商协议允许群组用户在不受信任的公开网络中生成相同的会话密钥,并由该会话密钥为之后的通信提供机密性和完整性保护。一般情况下,基于公钥可设计出具有前向安全性、防篡改、不可否认等特性的密钥协商协议。当前,公钥多依托于公钥基础设施(public key infrastructure, PKI),通过证书来保证公钥的真实性,但对证书的管理和支持是一个比较复杂的问题,并随着用户规模的扩大而增加。Shamir[1]提出了基于身份的公钥密码(identity-based public key cryptography, ID-PKC)机制,用户的公钥可直接从用户身份获取,用户的私钥由可信的私钥生成中心(key generation center, KGC)生成,有效实现了用户公钥与其身份的绑定。但该机制无法克服私钥托管问题,当出现恶意KGC或KGC被攻破时,整个系统的安全性也就被破坏。Sattam等[2]提出了无证书公钥密码体制(certificateless public key cryptography, CL-PKC),其用户私钥由KGC和用户自身分别生成,分散了密钥的泄漏风险,具有ID-PKC的无证书管理优点,同时又克服其安全性完全依赖于KGC的弱点。无证书群组密钥协商(certificateless authenticated group key agreement, CL-AGKA)协议多基于线性对[3]生成[4-11],由于线性对的计算比椭圆曲线群上的点乘运算耗费更多时间[12],因此无线性对的无证书群组密钥协商协议在相同条件[13-15]下更具计算效率的优势。

由于无证书群组密钥协商协议尚无完备的可证明安全模型,多个协议存在着弱点。文[5]指出文[4]中的协议不具备前向安全性;文[7]认为文[6]的协议存在无法保证选取的多项式级数为n,采用的签名算法无法抗Type Ⅱ型敌手的攻击且协议本身无法抗已知临时秘密值攻击等弱点;文[8]认为敌手通过监听网络中的数据即可计算得到文[16]协议的会话密钥,不满足隐式密钥认证的安全属性。本文对文[13]的协议进行了分析,认为其不具有抗重放仿冒攻击。针对这些问题或弱点,本文提出一种无线性对操作的固定轮数无证书群组密钥协商协议,适用于具有广播功能的网络。

1 难题假设

椭圆曲线离散对数难题(ECDLP):令E为定义在有限域$\mathbb{F}_q$上的椭圆曲线,PE($\mathbb{F}_q$)为E上一个阶为大素数n的点,QP的某个点乘结果,当给定攻击者{E, P, Q}时,求解某个整数d使得其满足Q=dP是困难的。

椭圆曲线Diffie-Hellman难题(ECDHP):令E为定义在有限域$\mathbb{F}_q$上的椭圆曲线,PE($\mathbb{F}_q$)为E上一个阶为大素数n的点,Q1=aPQ2=bPP的2个点乘结果,当给定攻击者{E, P, Q1, Q2}时,计算或判定abP是困难的。

2 对CL-AGKA协议[13]的安全性分析 2.1 CL-AGKA协议简述

n个用户U1, U2, …, Un组成一个环状结构的集合,Ui-1Ui+1在逻辑上分别为Ui的左右用户,且Un+1=U1U0=Un。集合要建立起一个共同的群组会话密钥,则需要运行的6个概率多项式时间算法如下。

1) Setup:用于生成全局系统参数,由KGC执行。算法输入为一个安全参数k,其操作如下:

a) KGC选取一个长为k比特的大素数p,定义$\mathbb{F}_q$上的合法椭圆曲线E,在椭圆曲线E上选取一个阶为大素数q的公开点P,由P生成一个循环加法群$\mathbb{G}$;

b)随机选择一个数sR$\mathbb{Z}_q^*$作为主秘密密钥,计算Ppub=sP,将Ppub作为系统公钥;

c)选择2个密码学意义上安全的Hash函数:H1: {0, 1}*→$\mathbb{Z}_q^*$和H2: $\mathbb{G}\times \mathbb{G}\to {{\{0, 1\}}^{k}}$;

d) KGC秘密保存主秘密密钥s,发布系统参数params={Fq, E/$\mathbb{F}_q$, $\mathbb{G}$, P, Ppub, H1, H2}。

2) Partial-Private-Key-Extract:由KGC生成用户的部分私钥,其当前输入为用户Ui的身份信息IDi。KGC选择一个随机数riR$\mathbb{Z}_q^*$,计算

$ \begin{array}{l} {R_i} = {r_i}P, {h_i} = {H_1}({\rm{I}}{{\rm{D}}_i}), \\ {s_i} = ({r_i} + s\cdot{h_i}){\rm{mod}}p. \end{array} $

其中:RiUi的部分公钥,siUi的部分私钥。KGC通过安全通道将(Ri, si)传给用户Ui。用户可以通过siP=Ri+H1(IDi)Ppub验证该部分私钥的有效性。

3) Set-Secret-Value:本算法用于设置用户的长期私有秘密值。身份信息为IDi的用户Ui随机选择一个xi∈$\mathbb{Z}_q^*$,并将作为其自身的长期私有秘密值。

4) Set-Private-Key:本算法用于设置用户的长期私钥。用户Uiski=(xi, si)作为其全部长期私钥。

5) Set-Public-Key:本函数用于设置用户的长期公钥。用户UiPi=xiP作为其公钥。

6) Key-Agreement:

第1轮 每一个用户Ui随机选取tiR$\mathbb{Z}_q^*$,计算Ti=tiPUi向邻居节点Ui-1Ui+1发送 < IDi, Ri, Ti, sigi>,其中sigi为消息签名;

第2轮 Ui收到来自Ui+1Ui-1的消息后,验证sigi-1和sigi+1的正确性。如果通过验证,则Ui计算:

a) Ki, i+1=(xi+si)Ti+1+ti·(Pi+1+Ri+1+hi+1·Ppub),

b) Ki, i+1=tiTi+1,

c) KiR=H2(Ki, i+1, Ki, i+1),

d) Ki, i-1=(xi+si)Ti-1+ti·(Pi-1+Ri-1+hi-1·Ppub),

e) Ki, i-1=tiTi-1,

f) KiL=H2(Ki, i-1, Ki, i-1),

g) Xi=KiLKiR.

Ui向群组中的其他用户广播Xi

在获得群组中所有其他用户的Xj(ji)后,Ui通过X1X2⊕…⊕Xn=0验证接收到的消息。通过验证后,Ui计算:

$ \begin{array}{l} {K_{i + 1}}^R = {X_{i + 1}} \oplus {K_i}^R, {\rm{ }}{K_{i + 2}}^R = {X_{i + 2}} \oplus {K_{i + 1}}^R, {\rm{ }}\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \cdots \\ {\rm{ }}{K_n}^R = {X_n} \oplus {K_{n-1}}^R, {\rm{ }}{K_1}^R = {X_1} \oplus {K_n}^R, \\ {\rm{ }}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; \cdots \\ \;\;\;\;\;\;\;\;\;\;\;\;{K_{i-1}}^R = {X_{i-1}} \oplus {K_{i - 2}}^R. \end{array} $

群组的会话密钥为

$ K = {H_1}({K_1}^R\left\| {{K_2}^R} \right\| \cdots \left\| {{K_n}^R} \right.). $
2.2 对CL-AGKA[13]的安全性分析

从CL-AGKA描述可知,该协议仅在第一轮中对消息进行了签名,而第二轮的消息中没有体现当前协议的新鲜性,无法抗恶意参与者发起的重放仿冒攻击。令UiUj为2个恶意用户,且j>i+1。他们参与群组中某次正常的协商,并记录了协商过程中所有的消息,这样UiUj可以合谋重放消息以仿冒UiUj间的所有用户Uk(i < k < j)。

首先描述某次正常的协议执行中UiUj的操作:

第1轮 UiUj间按照协议说明执行。除此之外,分别保存各自的临时秘密值TiTj,以及第一轮各自发送的消息 < IDi, Ri, Ti, sigi>和 < IDj, Rj, Tj, sigj>。

第2轮 UiUj间按照协议说明执行。除此之外,Ui保存Xi+1Uj保存Xj-1。指定Ui保存所有的Xk(i < k < j)。

本协议会话执行完后,UiUj可发起一次新的协商,记本次协商中正常用户发送的消息以“*”为上标,其发起的攻击如下:

第1轮 Ui发送保存的 < IDi, Ri, Ti, sigi>,Uj发送保存的 < IDj, Rj, Tj, sigj>;

第2轮 Ui验证Ui-1在第一轮发送的消息 < IDi-1, Ri-1, Ti-1*, sigi-1*>,Uj验证Uj+1在第一轮发送的 < IDj+1, Rj+1, Tj+1*, sigj+1*>。当都通过验证后,Ui计算:

a) Ki, i+1=(xi+si)Ti+1+ti·(Pi+1+Ri+1+hi+1·Ppub),

b) Ki, i+1=tiTi+1,

c) KiR=H2(Ki, i+1, Ki, i+1),

d) Ki, i-1=(xi+si)Ti-1*+ti·(Pi-1+Ri-1+hi-1·Ppub),

e) Ki, i-1=tiTi-1*,

f) KiL=H2(Ki, i-1, Ki, i-1),

g) Xi=KiLKiR.

Uj计算:

a) Kj, j+1=(xj+sj)Tj+1*+tj·(Pj+1+Rj+1+hj+1·Ppub),

b) Kj, j+1=tjTj+1*,

c) KjR=H2(Kj, j+1, Kj, j+1),

d) Kj, j-1=(xj+sj)Tj-1+tj·(Pj-1+Rj-1+hj-1·Ppub),

e) Kj, j-1=tjTj-1,

f) KjL=H2(Kj, j-1, Kj, j-1),

g) Xj=KjLKjR.

UiUj分别广播XiXjUi广播其保存的所有Xk(i < k < j).

由于有Ki+1L=KiRKj-1R=KjL,而所有Xk(i < k < j)值天然满足Kk+1L=KkRKk-1R=KkL。因此可以根据协议得到所有的KmR(1≤mn)。本次协议执行得到的会话密钥为

$ \begin{array}{l} K = {H_1}(\left. {{K_1}^{R*}} \right\| \cdots \left\| {{K_i}^{R*}} \right\|\left. {{K_i}^R} \right\| \cdots \\ \;\;\;\;\;\;\;\;\left\| {{K_{j-1}}^R} \right\|\left. {{K_j}^{R*}} \right\| \cdots \left\| {{K_n}^{R*}} \right.). \end{array} $

同样的攻击也适用于文[17-18]协议。

2.3 类Lippold模型安全

需要注意的是,在无证书群组密钥协商协议中会涉及到2方面计算。如文[13]中,用户Ui在第二轮中计算的KiLKiR分别是Ui与其逻辑左相邻和右相邻的用户之间生成的;文[11]中,用户Ui的2轮协议消息是与群组其他成员逐一分别生成的;文[14]的群组为一个二叉树结构,2个相邻叶子节点间需要生成一个共同秘密密钥。如何度量这些协议消息的安全性,在现有关于群组密钥协商协议的文献中尚未提及。

本文认为,应该在类Lippold模型[19]下考虑这些消息的安全性。Lippold模型定义了2类敌手:Type Ⅰ敌手可以替换双方用户的公钥,但无法获取KGC的主秘密密钥;Type Ⅱ敌手知道KGC的主秘密密钥,但无法替换用户的公钥。据节2.1可知,在无证书密钥协商协议中,任何一个用户都有部分私钥(partial private key)、长期私钥和临时私钥3个私钥。在Lippold模型中,任何一类敌手可以获取(替换公钥也算获取)某个用户的这3个私钥中的2个。如果协议暴露在这2类敌手的攻击下仍然是安全的,则说明该协议满足Lippold模型安全。在群组密钥协商协议中,如果协议在敌手获知了群组中部分用户的非全部私钥的情况下仍然安全,则称协议满足类Lippold安全。

以文[13]为例,某个敌手(不管是Type Ⅰ或Type Ⅱ型)以用户Ui为目标,如果敌手可以获取Ui-1UiUi+1各自的临时私钥ti-1titi+1,不需要知道这3个用户的其他2类私钥,则敌手可以发起仿冒Ui的攻击:

第1轮 与文[13]的第一轮一致;

第2轮 Ui收到来自Ui+1Ui-1的消息后,验证sigi-1和sigi+1的正确性。如果通过验证,则Ui计算:

a) Ki, i+1=ti+1(Pi+Ri+hi·Ppub)+ti·(Pi+1+Ri+1+hi+1·Ppub)=(xi+si)Ti+1+ti·(Pi+1+Ri+1+hi+1·Ppub),

b) Ki, i+1=tiTi+1,

c) KiR=H2(Ki, i+1, Ki, i+1),

d) Ki, i-1=(Pi+Ri+hi·Ppub)Ti-1+ti·(Pi-1+Ri-1+hi-1·Ppub)=(xi+si)Ti-1+ti·(Pi-1+Ri-1+hi-1·Ppub),

e) K′i, i-1=tiTi-1,

f) KiL=H2(Ki, i-1, Ki, i-1),

g) Xi=KiLKiR.

Ui向群组中的其他用户广播Xi

即敌手当知道某个用户的临时秘密时,即可仿冒该用户。类似地,文[11]中如果敌手获取了2个用户UiUj各自的临时私钥rirj,以及其长期私钥xIDi和xIDj,不需要知道两者的部分私钥,敌手则可以计算出第1轮和第2轮的值;文[14]中如果敌手知道2个相邻叶子节点的临时私钥,不需要知道其他两类私钥,敌手则可以计算出这2个节点间的共同秘密值。

3 一个新的CL-AGKA协议 3.1 协议描述

针对节2出现的问题,本文对其进行改进,提出一个无线性对的固定轮数无证书群组密钥协商协议。群组结构与节2.1的一样为环状,群组中每个用户知道群组的所有成员名称和逻辑结构。为防止消息传输过程中被篡改,本协议使用文[16]提出的签名算法,该算法的不可伪造性证明参见文[16]。协议的6个概率多项式时间算法如下。

1) Setup:除了Hash函数不同之外,其余与节2.1定义的相同。在这里定义Hash函数为

$ \begin{array}{l} {H_1}:{\{ 0, 1\} ^*} \times \mathbb{G} \to \mathbb{Z}_q^*, \;\;{H_2}:{G^3} \to {\{ 0, 1\} ^k};\\ \;\;\;\;{H_3}:{\{ 0, 1\} ^*} \times \mathbb{G} \times {\{ 0, 1\} ^k} \to \mathbb{Z}_q^*\\ \;\;\;\;\;\;\;\;\;{H_4}:{\{ 0, 1\} ^*} \to {\{ 0, 1\} ^k}. \end{array} $

2) Partial-Private-Key-Extract:由KGC生成用户的部分私钥,其当前输入为用户Ui的身份信息IDi。KGC选择一个随机数riR$\mathbb{Z}_q^*$,计算

$ \begin{array}{l} {R_i} = {r_i}P, {h_i} = {H_1}({\rm{I}}{{\rm{D}}_i}, {\rm{ }}{R_i}), \\ {s_i} = ({r_i} + s\cdot{h_i}){\rm{mod}}p. \end{array} $

其中:RiUi的部分公钥,siUi的部分私钥。KGC通过安全通道将(Ri, si)传给用户Ui。用户可以通过以下计算验证该部分私钥的有效性:

$ {s_i}P = {R_i} + {H_1}({\rm{I}}{{\rm{D}}_i}, {\rm{ }}{R_i}){P_{{\rm{pub}}}}. $

3) Set-Secret-Value/Set-Private-Key/Set-Public-Key:与节2.1定义相同;

4) Key-Agreement:

第1轮 每一个用户Ui随机选取tiR$\mathbb{Z}_q^*$,计算Ti=tiPUi向群组其他成员广播发送 < IDi, Ri, Ti>;

第2轮 Ui收到群组所有其他成员的

< IDj, Rj, Tj>(1 < j < n, 且ji)

消息后,记作

$ \begin{array}{l} {\rm{sid}} = {\rm{I}}{{\rm{D}}_1}\left\| {{\rm{I}}{{\rm{D}}_2}} \right\| \cdots {\rm{I}}{{\rm{D}}_n}{\rm{, }}\\ {\rm{tid}} = {T_1}\left\| {{T_2}} \right\| \cdots {T_n}. \end{array} $

计算

$ \begin{array}{l} {\rm{S}}{{\rm{P}}_{i-1}} = {R_{i-1}} + {H_1}({\rm{I}}{{\rm{D}}_{i-1}}, {\rm{ }}{R_{i - 1}}){P_{{\rm{pub}}}}, \\ {\rm{S}}{{\rm{P}}_{i + 1}} = {R_{i + 1}} + {H_1}({\rm{I}}{{\rm{D}}_{i + 1}}, {\rm{ }}{R_{i + 1}}){P_{{\rm{pub}}}}, \end{array} $

以及

$ \begin{array}{l} {K_{i, {\rm{ }}i-1}}^1 = ({x_i} + {s_i})({P_{i-1}} + {\rm{S}}{{\rm{P}}_{i-1}}) + {t_i}{T_{i - 1}}, {\rm{ }}\\ {K_{i, {\rm{ }}i - 1}}^2 = ({x_i} + {t_i})({P_{i - 1}} + {T_{i - 1}}), {\rm{ }}\\ {K_{i, {\rm{ }}i - 1}}^3 = ({t_i} + {s_i})({T_{i - 1}} + {\rm{S}}{{\rm{P}}_{i - 1}}) + {x_i}{P_{i - 1}}, \\ {K_i}^L = {H_2}({K_{i, {\rm{ }}i - 1}}^1\left\| {{K_{i, {\rm{ }}i - 1}}^2} \right\|{K_{i, {\rm{ }}i - 1}}^3), \\ {K_{i, {\rm{ }}i + 1}}^1 = ({x_i} + {s_i})({P_{i + 1}} + {\rm{S}}{{\rm{P}}_{i + 1}}) + {t_i}Ti + 1, {\rm{ }}\\ {K_{i, {\rm{ }}i + 1}}^2 = ({x_i} + {t_i})({P_{i + 1}} + {T_{i + 1}}), {\rm{ }}\\ {K_{i, {\rm{ }}i + 1}}^3 = ({t_i} + {s_i})({T_{i + 1}} + {\rm{S}}{{\rm{P}}_{i + 1}}) + {x_i}{P_{i + 1}}, \\ {K_i}^R = {H_2}({K_{i, {\rm{ }}i + 1}}^1\left\| {{K_{i, {\rm{ }}i + 1}}^2} \right\|{K_{i, {\rm{ }}i + 1}}^3), {\rm{ }}\\ {X_i} = {K_i}^L \oplus {K_i}^R. \end{array} $

5) 认证方案Г

$ \begin{array}{l} {u_i} = {H_3}({\rm{sid}}\left\| {{\rm{tid}}} \right\|\left. {{T_i}} \right\|{X_i}), \\ {v_i} = {t_i}/({x_i} + {s_i} + {u_i}). \end{array} $

Ui向群组内其他用户广播 < IDi, Xi, ui, vi>.

6) Key Computation:

Ui收到其他用户Uj(1 < j < n, 且 < ≠i)发送的 < IDj, Xj, uj, vj>后,如果 < uj, vj>是真实的签名,则有:

$ \begin{array}{l} {v_j}({P_j} + {R_j} + {H_1}({\rm{I}}{{\rm{D}}_j}, {\rm{ }}{R_j}){P_{{\rm{pub}}}} + {u_j}P) = \\ \frac{{{t_j}}}{{{x_j} + {s_j} + {u_j}}}({x_j}P + {R_j} + {H_1}({\rm{I}}{{\rm{D}}_j}, {\rm{ }}{R_j}){P_{{\rm{pub}}}} + {u_j}P) = \\ \frac{{{t_j}}}{{{x_j} + {s_j} + {u_j}}}({x_j} + {s_j}P + {u_j})P = {t_j}P = {T_j}. \end{array} $

通过检验下式是否成立来判断签名是否合法:

$ \begin{array}{l} {H_3}({\rm{tid}}\left\| {{\rm{sid}}} \right\|{v_j}({P_j} + {R_j} + {H_1}({\rm{I}}{{\rm{D}}_j}, {\rm{ }}{R_j})\cdot\\ \;\;\;\;{\rm{ }}{P_{{\rm{pub}}}} + {u_j}P)\left\| {{X_j}} \right.) = {u_i}. \end{array} $

如果签名非法,则Ui广播“失败”并退出协议执行;若签名合法,则通过KiR=KLi+1KRi+1=Xi+1KiR可恢复出Ki+1R。以此类推,Ui可恢复出Ki+2R, …, KRi+n-1Ui判断Ki+n-1R=KiL是否成立,如不成立则Ui广播“失败”并退出协议执行。当Ui计算出群组内所有TxR(1≤xn)后,计算会话密钥:

$ {\rm{S}}{{\rm{K}}_i} = {H_4}({T_1}^R\left\| {{T_2}^R} \right\| \cdots \left\| {{T_n}^R} \right\|{\rm{sid}}). $

在计算出会话密钥后,每个用户清除协商过程中生成的所有临时数据。

3.2 安全性分析

新协议将签名放在第二轮中,且签名算法被证明是不可伪造的。签名的生成与第一轮中群组内所有用户广播的Ti值、所有群组用户的身份、第二轮生成的Ki值相关,保证了消息的新鲜性。敌手无法重放消息,无法发起节2.2的攻击。

由于本协议与文[18]的结构类似,其安全性证明可使用文[18]的Game序列法。这里仅给出结论,模型定义和具体含义可参考文[18]。令协议中H1, H2H3为RO模型中的3个互不相同的Hash函数,则在ECDH难题成立和安全认证方案的前提下,CL-AGKA是一个安全的AGKA协议,且具有前向安全性。记A为协议的某一主动攻击者,AdvCL-AGKE为敌手猜解出挑战值的最大优势,SuccΓcma(t, qs)为敌手对签名策略Г进行选择消息攻击(chosen message attack, CMA)下存在性伪造(existential forgery)的成功概率,Succ$\mathbb{G}$ECDH(t)为敌手成功解决ECDH难题的概率,qSqH分别为文[18]中的Send询问次数和对Hash预言机H的Hash询问次数,则

$ \begin{array}{l} {\rm{Ad}}{{\rm{v}}^{{\rm{CL}}-{\rm{AGKE}}}} \le 2n{\rm{Succ}}_\Gamma ^{{\rm{cma}}}(t, {q_s}) + \\ \;\;\;\;2{q_h}q_s^2 \cdot {\rm{Succ}}_\mathbb{G}^{{\rm{ECDH}}}(t). \end{array} $

关于本协议的类Lippold安全性,类似的证明可参见文[20]。

4 效率分析

将本文协议与文[11]和[13]这2个固定轮数的协议进行对比,如表 1所示,3个协议的轮数均为2。比较的指标为每个用户的线性对(pairing)计算量、点乘计算量和是否满足类Lippold安全。Hash算法的计算量相对较小,这里忽略。

表 1 协议比较
协议 Pairing计算量 点乘计算量 模幂/模加计算量 类Lippold安全
TW[11] n-1 2(n-1) 3(n-1)
KTJ[13] 0 11 0
本文协议 0 3n+10 0
注:文[13]未提供具体的签名和验签算法,因此其点乘运算只是非签名/验签操作的。

根据文[12]的实验结果,一次Pairing运算约为20次点乘运算,因此相对文[13]而言,本文协议的效率较高。同时,本文协议在设计时考虑到Type Ⅰ和Type Ⅱ 2类敌手,保证了安全性。

5 结论

本文分析了现有CL-AKGA协议的一些弱点,提出了在无证书群组密钥协商过程中,仍应该满足类Lippold模型规定的安全性,提出了一个无线性对的固定轮数无证书群组密钥协商协议,并对其在Game序列法和类Lippold模型下进行了证明。结果表明:与其他固定轮数无证书协议相比,该协议计算量较小,安全性更高。

参考文献
[1] Shamir A. Identity-based cryptosystems and signature schemes[J]. Lecture Notes in Computer Science, 1984, 21(2): 47–53.
[2] Sattam S, Al-Riyami, Kenneth G, et al. Certificateless public key cryptography[C]//ASIACRYPT, Berlin, Germany:Springer, 2003:452-473.
[3] Blake I, Gadiel S, Smart N. Advances in Elliptic Curve Cryptography[M]. New York: Cambridge University Press, 2005.
[4] Heo S, Kim Z, Kim K. Certificateless authenticated group key agreement protocol for dynamic groups[C]//Global Telecommunications Conference. Washington DC, USA:IEEE Press, 2007:464-468.
[5] Lee E J, Lee S E, Yoo K Y. A certificateless authenticated group key agreement protocol providing forward secrecy[C]//International Symposium on Ubiquitous Multimedia Computing. Hobart, Australia:IEEE Press, 2008:124-129.
[6] CAO Chunjie, MA Jianfeng, Moon S. Provable efficient certificateless group key exchange protocol[J]. Wuhan University Journal of Natural Sciences, 2007, 12(1): 41–45. DOI:10.1007/s11859-006-0167-1
[7] GENG Manman, ZHANG Futai. An improved secure certificateless authenticated group key agreement protocol[C]//IEEE International Conference on Intelligent Computing and Intelligent Systems. Shanghai, China:IEEE Press, 2009:337-341.
[8] GENG Manman, ZHANG Futai, GAO Meng. A secure certificateless authenticated group key agreement protocol[C]//International Conference on Multimedia Information NETWORKING and Security. Wuhan, China:IEEE Computer Society, 2009:342-346.
[9] Zhang L, Wu Q, Qin B, et al. Provably secure certificateless authenticated asymmetric group key agreement[J]. Information Security Practice and Experience, 2014: 496–510.
[10] Islam S H, Singh A. Provably secure one-round certificateless authenticated group key agreement protocol for secure communications[J]. Wireless Personal Communications, 2015, 85(3): 879–898. DOI:10.1007/s11277-015-2815-2
[11] Teng J, Wu C. A provable authenticated certificateless group key agreement with constant rounds[J]. Journal of Communications & Networks, 2012, 14(1): 104–110.
[12] Chen L, Cheng Z, Smart N P. Identity-based key agreement protocols from pairings[J]. International Journal Information Security, 2007, 6(4): 213–241. DOI:10.1007/s10207-006-0011-9
[13] Kumar A, Tripathi S, Jaiswal P. A pairing-free certificateless group key agreement protocol with constant round[J]. Advanced Computing, Networking and Informatics, 2014: 341–349.
[14] Gu X, Xu T, Zhou W, et al. A pairing-free certificateless authenticated group key agreement Protocol[C]//High Performance Computing and Communications, Intl Symp on Cyberspace Safety and Security, 2014 IEEE, Intl Conf on Embedded Software and Syst. Paris, France:IEEE Press, 2014:510-513.
[15] Kumar A, Tripathi S. A pairing free anonymous certificateless group key agreement protocol for dynamic group[J]. Wireless Personal Communications, 2015, 82(2): 1027–1045. DOI:10.1007/s11277-014-2264-3
[16] 刘文浩, 许春香. 无双线性配对的无证书签密方案[J]. 软件学报, 2011, 22(8): 1918–1926. LIU Wenhao, XU Chunxiang. Certificateless signcryption scheme without bilinear pairing[J]. Journal of Software, 2011, 22(8): 1918–1926. (in Chinese)
[17] Kumar A, Tripathi S. Anonymous ID-based group key agreement protocol without pairing[J]. International Journal of Network Security, 2016, 18(2): 263–273.
[18] Kim H J, Lee S M, Dong H L. Constant-round authenticated group key exchange for dynamic groups[C]//Advances in Cryptology-ASIACRYPT 2004, International Conference on the Theory and Application of Cryptology and Information Security. Jeju Island, Korea:DBLP, 2004:245-259.
[19] Lippold G, Boyd C, Nieto J G. Strongly Secure Certificateless Key Agreement[M]. Berlin: Springer, 2009.
[20] Sun H Y, Wen Q Y, Zhang H, et al. A strongly secure pairing-free certificateless authenticated key agreement protocol for low-power devices[J]. Information Technology and Control, 2013, 42(2): 113–123.