APP下载

可识别非法用户的群密钥协商协议

2020-12-25庄锋茂林修慧林昌露

莆田学院学报 2020年5期
关键词:敌手公钥哈希

庄锋茂, 林修慧, 林昌露*

(1.福建体育职业技术学院 体育保健系, 福建 福州 350003;2.福建师范大学 数学与信息学院, 福建 福州 350117)

0 引言

随着现代科技的发展, 人们的网络通信日益频繁, 对通信安全的要求也越来越高。 群密钥协商协议在通信领域中被广泛使用, 它分为交互式密钥协商协议和非交互式密钥协商协议两种。 非交互式密钥协商协议是由一个密钥生成中心(key generation center, KGC) 生成密钥, 然后注册其他用户, 用户之间使用密钥进行交流; 交互式密钥协商不存在KGC, 而是用户之间互相注册, 共同协商出用于通信的密钥。

1976 年, Diffie 和Hellman 首先提出了两方的密钥协商协议(简称为DH 协议), 其安全性建立在有限域上离散对数求解困难的假设, 克服了没有可信任第三方的问题, 且是第一个交互式的密钥协商协议[1]。 但是其局限是仅支持两个用户之间的密钥协商, 且容易受到中间人攻击。直到2000 年, Joux 以椭圆曲线为工具首次提出了三方的密钥协商协议[2], 其局限性是无法支持多方用户协商。 Steiner 等也以DH 协议为基础提出了n 方的协商协议[3], 但是该协议不能验证用户的身份。 之后Boneh 等以不可区分混淆来建立多方密钥交换协议[4]。 但这些协议都是基于公钥加密体系而设计的, 在多方的通信交流中, 其计算复杂度比较高, 而且每个用户都必须存储其他用户的公钥, 这极大地占用了存储空间并带来一些密钥管理的麻烦。 基于秘密分享的思想[5], Harn 等使用对称双变量多项式提出了一个非交互式的群密钥协商协议[6], 该协议是由KGC 随机选择一个密钥, 然后生成一个对称双变量多项式并把密钥隐藏在多项式的常数项, 分发给指定的用户相应的份额, 合法用户的人数只要满足门限就能够正确地重构出这个密钥。 它的特点是用户只要在多项式计算复杂度下就能得到密钥, 并且可以检测识别出非法的用户, 也不需要存储其他用户的公钥, 但该协议检测阶段的算法计算成本较高, 需要进行大量的模指数计算,在一些使用轻量级设备的场景下不能得到很好应用。 之后, 陆续有学者进行了研究[7-9], 曾继强等通过基于DH 协议的椭圆曲线算法(ECC)提出群密钥协商协议[10]。 Zhang 等使用属性加密和身份验证技术, 提出了非对称群密钥协商协议, 适用于不安全的移动网络[11], 这些协议的安全性是基于离散对数困难问题, 所以计算复杂度相对较大。 Hsu 等最近又提出了一个面向多个群的密钥协商协议[12], 但是被Mitchell 证明它是不安全的[13]。 基于Harn 等的协议[6], 本文提出了一种高效的识别方法。 在非法用户的识别阶段, 利用对称双变量多项式的对称性可快速地识别非法用户, 用户只需要执行哈希运算来验证等式是否成立。

1 预备知识

1.1 对称双变量多项式

定义1(对称双变量多项式[6]) 设p 是一个公开的大素数, GF(p) 是p 元有限域, 对任意ai,j∈GF(p), i, j ∈[0, t - 1] 把F(x, y) =a0,0+ a1,0x + a1,0y + a2,0x2+ a2,0y2+ … +at-1,t-1xt-1yt-1称作双变量多项式; 如果对任意的i, j ∈[0, t - 1] 都有ai,j= aj,i, 那么称它为对称双变量多项式。 显然, 对任意的xi和yi, 都有F(xi, yi) = F(yi, xi)。

1.2 敌手模型

本文协议中, 只考虑两种敌手模型: 内部敌手和外部敌手。 内部敌手是合法的用户, 拥有KGC 所分发的密钥份额, 会忠实执行协议但会尝试恢复其他合法用户的密钥份额, 并且这些敌手会秘密地交换已有的信息。 有时也称内部敌手为诚实且好奇的敌手。 外部敌手不是合法的用户, 没有KGC 所分发的密钥份额, 不会忠实地执行协议, 会发送错误的消息或者截获合法用户之间传输的消息, 并且试图去获得其他合法用户的份额或最终协商的密钥。 有时也称外部敌手为恶意的敌手。

2 本文协议

本文协议是基于非公钥加密体系构造的, 所以不需要复杂的模指数运算, 每个用户不需要存储其他用户的公钥, 只需要存储一个单变量多项式。 另外本文根据对称双变量多项式的对称性提出了一种高效的识别非法用户的方法, 只需校验用户份额的哈希值是否相等, 而不要进行大量的计算。 本文协议有以下三个阶段。

密钥生成和分发阶段: KGC 随机选择一个密钥, 并生成一个随机的对称双变量多项式把密钥掩盖起来, 再公开密钥的哈希值。 同时再为每个用户分配相应的身份ID 值并且公开。 然后把每个用户的ID 值分别代入对称双变量多项式进行计算, 会得到对应的单变量多项式, 接着秘密地分发给相应ID 值的用户, 作为这些用户的密钥份额。

密钥验证阶段: 每个用户利用自己的密钥份额计算出对应其他用户的传输密钥, 然后使用传输密钥加密自己的密钥份额并传输给其他用户, 每个用户收到所有其他用户发来的信息后, 再使用相应的传输密钥进行解密, 之后就能重构出密钥。

非法用户识别阶段: 如果发现重构的密钥哈希值与公开的密钥哈希值不相等, 说明存在非法用户, 那么每个用户互相发送传输密钥的哈希值给其他用户进行识别, 这样只要验证哈希值是否相等就能找出非法用户。

本文的计算都是在GF(p) 上进行的, p 是公开的大素数。 P1, P2, …, Pn表示n 个用户, 其对应的身份ID 值x1, x2, …, xn也是公开的(如用户P1的身份ID 值为x1)。

2.1 密钥生成和分发阶段

KGC 先随机选取一个群密钥s, 令a0,0= s,再随机生成对称双变量多项式F(x, y) = a0,0+a1,0x + a0,1y + a2,0x2+ a1,1xy + a0,2y2+ … +at-1,t-1xt-1yt-1(mod p), t <n, 再公开H(s)。 然后计算si(y) = F(xi, y)(mod p), 把si(y) 秘密分发给对应的用户Pi。

2.2 密钥验证阶段

在这个阶段, 任意≥t 个用户都可以进行群密钥的验证, 如果验证通过就可以使用密钥进行加密通讯交流, 如果验证不通过则进入非法用户识别阶段。 不失一般性, 本文假设前t 个用户P1, P2, …, Pt参与验证。

第一步: 每个用户Pi(i = 1, 2, …, t) 计算

第二步: 每个用户Pi使用自己的份额si(y)计算kij= si(xj)(j = 1, 2, …, t, j ≠i)。 然后计算cij= Ekij(bi), 这里Ekij是以kij为密钥的公开常规加密函数。 最后发送cij(j = 1, 2, …, t, j ≠i) 给对应的用户Pj。

第三步: 每个用户Pj在收到其他用户发送的cij(i = 1, 2, …, t, j ≠i) 后, 先使用自己的份额计算kji= sj(xi)(i = 1, 2…, t, i ≠j)。 由于本文使用的是对称双变量多项式, 所以会有kji=sj(xi) = F(xj, xi) = F(xi, xj) = si(xj) = kij。 再对cij进行解密计算得到bi= Dkij(cij)(i = 1, 2, …,t, i ≠j)。 这里Dkij是对应Ekij以kij为密钥的公开证H(s′) 与H(s) 是否相等, 如果相等则说明这些用户是合法的以及s′ 是正确的群密钥, 否则执行识别算法。

2.3 非法用户识别阶段

在这个阶段, 本文将根据对称双变量多项式的对称性来构造识别算法。

第一步: 每个用户Pi(i = 1, 2, …, t) 向所有其他用户Pj(j ≠i) 发送H(kji‖xi)‖xi(符号‖表示串联运算符)。

第二步: 每个用户Pj在收到其他用户Pi(i≠j) 发来的H(kji‖xi)‖xi之后可以使用自己的kij对其进行检验, 验证H(kij‖xi)= H(kji‖xi)(j= 1, 2, …, t) 是否成立, 如果成立则说明Pi为合法用户, 反之Pi就是非法用户。 这样, 所有的非法用户在一轮通信过后都能识别出来。

3 协议分析

本节将对上节协议进行正确性和安全性分析。 本文协议的正确性和抵抗内部敌手攻击的分析与Harn 等[6]协议一致, 故不再赘述。 下文仅对本文协议抵抗外部敌手攻击情形进行分析。

定理1 (外部敌手) 如果本文协议正确执行, 那么外部的非法用户不能获得密钥, 并且可以被识别出来。

证 先证明外部敌手不能获得密钥s。

在密钥验证阶段的第二步中, 因为外部敌手没有sj(y), 而且kij= si(xj)(j = 1, 2, …, t, j≠i), 所以外部敌手就无法通过公开的xj计算得到kij。 在第三步中, 假如外部敌手截获了在公共网络上传输的cij, 但是没有得到kij, 由bi=Dkij(cij)(i = 1, 2, …, t, i ≠j) 可知外部敌手也无法解密得到相应的bi, 从而不能获得密钥s。事实上, 由拉格朗日插值公式可知, s =

接下来证明外部敌手可以被快速的识别出来。

当外部敌手试图假扮合法用户时, 由前面的证明知道外部敌手无法得到kij, 由哈希函数的抗碰撞性可以知道, 外部敌手无法计算出正确的H(kij‖xi)‖xi, 也就是说外部敌手会被识别出来。

4 协议比较

在本文协议中, 由于ID 值是KGC 随机分配, 所以并不会造成用户隐私的泄露。 本文方法是基于对称双变量多项式所提出的, 用户之间可以互相利用对称双变量多项式的对称性, 验证哈希值是否相等来高效识别合法用户。 因为本文协议不是基于公钥加密体系构造, 故不需要公钥基础设施去额外的认证, 也不需要复杂的模指数运算。 表1 给出了本文协议与其他协议的具体对比。

表1 协议的特性对比

如表1 所示, 本文协议在个人隐私保护、 非法用户识别、 计算复杂度方面均有较好的特性。

5 总结

本文是给出了一种高效识别非法用户的协议。 只要进行哈希验证就可以识别非法用户。 经过分析, 满足了正确性和安全性要求, 可以保护用户的个人隐私, 不需要进行复杂的模指数运算, 也不需要额外的密钥认证设施, 相较于其他协议均有较优的特性。

猜你喜欢

敌手公钥哈希
与“敌”共舞
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
不带着怒气做任何事
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
巧用哈希数值传递文件
不带着怒气作战