秘密共享机制下无证书门限签密方法转让专利

申请号 : CN202011128520.2

文献号 : CN112260830B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 俞惠芳廖春生马祥

申请人 : 青海交通职业技术学院

摘要 :

一种秘密共享机制下无证书门限签密方法,由系统初始化、确定用户公私钥、提取用户部分私钥、门限签密、解签密步骤组成。在门限签密步骤中采用了无证书门限加密和认证的方法,解决了证书管理和密钥托管问题和由于私钥唯一而导致的单点故障问题;以无证书公钥密码学、秘密共享机制和门限签密为理论基础,提高了安全性,避免了对安全信道的依赖、证书管理和密钥托管问题、私钥拥有者具有绝对权限问题,可以防御适应性选择密文攻击和适应性选择消息攻击,适用于网络信息安全应用环境。本发明具有安全性好、计算复杂度低等优点,在网络信息安全领域有着良好的应用前景。

权利要求 :

1.一种秘密共享机制下无证书门限签密方法,其特征在于它是由下述步骤组成:A、系统初始化

(A1)密钥生成中心选取一个k比特大素数q,k是安全参数、为有限的正整数,设定G1和G2是两个q阶乘法循环群、e是G1×G1→G2为一个双线性映射;

*

(A2)密钥生成中心选取三个密码学安全的哈希函数H1、H2、H3:H1:{0,1} ×G1×G1→G1,λ λ 3 * *

H2:G1×G1→{0,1},H3:{0,1} ×G1×G2→Zq ,其中λ表示消息长度,Zq 表示{1,2,...,q‑1},* λ

{0,1} 表示由0和1所组成的任意长度的身份,{0,1}表示由0和1所组成的长度为λ的消息,H1表示把任意长度的身份和两个G1上的元素联接,通过散列算法变换成G1上的元素,H2表示把两个G1上的元素联接,通过散列算法变换成长度为λ的中间信息,H3表示把一个长度为λ的*

消息、三个G1上的元素和一个G2上的元素联接,通过散列算法变换成有限域Zq上的元素;

*

(A3)密钥生成中心从有限域Zq中随机选取系统私钥s,确定系统公钥ypub:s

ypub=g∈G1

其中g是群G1的一个生成元;

(A4)密钥生成中心保密系统私钥s,公开系统全局参数L:L={G1,G2,e,g,ypub,q,λ,H1,H2,H3}B、确定用户公私钥

*

(B1)拥有身份ID的密钥分发者随机选取其私钥xD∈Zq,确定其公钥uD:*

(B2)拥有身份Ir的接收者随机选取私钥xr∈Zq,确定其公钥ur;

C、提取用户部分私钥

(C1)密钥生成中心确定拥有身份ID的密钥分发者的部分私钥dD:s

dD=ξD∈G1

其中ξD是哈希值H1(ID||ypub||uD),密钥生成中心发送部分私钥dD给密钥分发者,如果e(g,dD)与e(ypub,ξD)相等,密钥分发者接受部分私钥dD,否则,要求重发;

(C2)密钥生成中心确定拥有身份Ir的接收者的部分私钥dr:s

dr=ξr∈G1

其中ξr是哈希值H1(Ir||ypub||ur),密钥生成中心发送部分私钥dr给接收者,如果e(g,dr)与e(ypub,ξr)相等,接收者接受部分私钥dr,否则,要求重发;

D、共享密钥

(D1)设定{U1,U2,…,Un}是n个签密者的集合,n是有限的正整数,密钥分发者随机选取b1,b2,…,bt‑1,构造(t‑1)次多项式:t‑1

f(x)=s0+b1x+b2x+...+bt‑1x其中t是门限值;

(D2)密钥分发者确定si:si=f(i),i∈{0,1,2,...,n}其中s0=xD;发送si给签密者Ul,Ul∈{U1,U2,…,Un},l∈{1,2,…,n};

(D3)密钥分发者确定y0、yj:广播y0、yj,其中j∈{1,2,...,t‑1};

(D4)如果

签密者Ul接受密钥份额,否则,要求重发;

E、门限签密

*

(E1)签密者Ul从有限域Zq中随机选取私钥μi,确定中间值ri、vi:发送ri和vi给密钥分发者;

(E2)密钥分发者收到ri和vi,确定部分密文r、中间值v、对称密钥κ、加密密文c、哈希值κ=e(v,ξr)∈G2发送哈希值 给签密者Ul;

(E3)签密者Ul确定中间值hi:发送中间值hi给密钥分发者,其中(E4)如果

成立,密钥分发者接受中间值hi,否则,要求重发;

(E5)密钥分发者确定部分密文h:发送密文σ给拥有身份Ir的接收者:σ={r,c,h}

F、解签密

(F1)拥有身份Ir的接收者收到密文σ,确定对称密钥κ、明文m、哈希值(F2)如果

成立,接受明文m;否则,密文无效。

说明书 :

秘密共享机制下无证书门限签密方法

技术领域

[0001] 本发明属于网络信息安全技术领域,具体涉及到无证书公钥密码学和门限签密方法。

背景技术

[0002] 无证书门限签密方法可以保证多用户共同分享签密操作权限,使得不少于门限值个用户协同完成签密操作,而少于门限值个用户无法进行合谋。无证书门限签密方法不仅
克服了密钥托管和证书管理问题,而且避免了传统公钥密码由于私钥唯一而导致的单点故
障问题,这些优点使之特别适合应用于电子政务、电子商务、电子军务等网络信息安全领
域。无证书门限签密方法能同时达到保密和认证的效果,是公钥密码系统的最主要应用之
一,目前还没有基于两个乘法循环群的秘密共享机制下无证书门限签密方法。
[0003] 在现有的网络信息安全应用环境中,运用无证书门限签密方法还存在安全性弱、计算复杂度和通信成本比较大的技术问题。这两个问题在网络信息安全应用中不容忽视,
是需要迫切解决的技术问题。

发明内容

[0004] 本发明所要解决的技术问题在于克服上述现有技术的缺点,在无私钥拥有者的绝对权限、无密钥托管和证书管理问题的条件下,提供一种安全性好、计算复杂度低的秘密共
享机制下无证书门限签密方法。
[0005] 解决上述技术问题所采用的技术方案由下述步骤组成:
[0006] 1、一种秘密共享机制下无证书门限签密方法,其特征在于它是由下述步骤组成:
[0007] A、系统初始化
[0008] (A1)密钥生成中心选取一个k比特大素数q,k是安全参数、为有限的正整数,设定G1和G2是两个q阶乘法循环群、e是G1×G1→G2为一个双线性映射。
[0009] (A2)密钥生成中心选取三个密码学安全的哈希函数H1、H2、H3:H1:{0,1}*×G1×G1λ λ 3 * *
→G1,H2:G1×G1→{0,1} ,H3:{0,1} ×G1×G2→Zq ,其中λ表示消息长度,Zq 表示{1,2,...,
* λ
q‑1},{0,1}表示由0和1所组成的任意长度的身份,{0,1} 表示由0和1所组成的长度为λ的
消息,H1表示把任意长度的身份和两个G1上的元素联接,通过散列算法变换成G1上的元素,
H2表示把两个G1上的元素联接,通过散列算法变换成长度为λ的中间信息,H3表示把一个长
*
度为λ的消息、三个G1上的元素和一个G2上的元素联接,通过散列算法变换成有限域Zq上的
元素。
[0010] (A3)密钥生成中心从有限域Zq*中随机选取系统私钥s,确定系统公钥ypub:
[0011] ypub=gs∈G1
[0012] 其中g是群G1的一个生成元。
[0013] (A4)密钥生成中心保密系统私钥s,公开系统全局参数L:
[0014] L={G1,G2,e,g,ypub,q,λ,H1,H2,H3}
[0015] B、确定用户公私钥
[0016] (B1)拥有身份ID的密钥分发者随机选取其私钥xD∈Zq*,确定其公钥uD:
[0017]
[0018] (B2)拥有身份Ir的接收者随机选取私钥xr∈Zq*,确定其公钥ur:
[0019]
[0020] C、提取用户部分私钥
[0021] (C1)密钥生成中心确定拥有身份ID的密钥分发者的部分私钥dD:
[0022] dD=ξDs∈G1
[0023] 其中ξD是哈希值H1(ID||ypub||uD),密钥生成中心发送部分私钥dD给密钥分发者,如果e(g,dD)与e(ypub,ξD)相等,密钥分发者接受部分私钥dD,否则,要求重发。
[0024] (C2)密钥生成中心确定拥有身份Ir的接收者的部分私钥dr:
[0025] dr=ξrs∈G1
[0026] 其中ξr是哈希值H1(Ir||ypub||ur),密钥生成中心发送部分私钥dr给接收者,如果e(g,dr)与e(ypub,ξr)相等,接收者接受部分私钥dr,否则,要求重发。
[0027] D、共享密钥
[0028] (D1)设定{U1,U2,…,Un}是n个签密者的集合,n是有限的正整数,密钥分发者随机选取b1,b2,…,bt‑1,构造(t‑1)次多项式:
[0029] f(x)=s0+b1x+b2x+...+bt‑1xt‑1
[0030] 其中t是门限值。
[0031] (D2)密钥分发者确定si:
[0032] si=f(i),i∈{0,1,2,...,n}
[0033] 其中s0=xD,发送si给签密者Ul,Ul∈{U1,U2,…,Un},l∈{1,2,…,n}。
[0034] (D3)密钥分发者确定y0、yj:
[0035]
[0036]
[0037] 广播y0、yj,其中j∈{1,2,...,t‑1}。
[0038] (D4)如果
[0039]
[0040] 签密者Ul接受密钥份额,否则,要求重发。
[0041] E、门限签密
[0042] (E1)签密者Ul从有限域Zq*中随机选取私钥μi,确定中间值ri、vi:
[0043]
[0044]
[0045] 发送ri和vi给密钥分发者。
[0046] (E2)密钥分发者收到ri和vi,确定部分密文r、中间值v、对称密钥κ、加密密文c、哈希值
[0047]
[0048]
[0049] κ=e(v,ξr)∈G2
[0050]
[0051]
[0052] 发送哈希值 给签密者Ul。
[0053] (E3)签密者Ul确定中间值hi:
[0054]
[0055] 发送中间值hi给密钥分发者,其中
[0056] (E4)如果
[0057]
[0058] 成立,密钥分发者接受中间值hi,否则,要求重发。
[0059] (E5)密钥分发者确定部分密文h:
[0060]
[0061] 发送密文σ给拥有身份Ir的接收者:
[0062] σ={r,c,h}
[0063] F、解签密
[0064] (F1)拥有身份Ir的接收者收到密文σ,确定对称密钥κ、明文m、哈希值
[0065]
[0066]
[0067]
[0068] (F2)如果
[0069]
[0070] 成立,接受明文m;否则,密文无效。
[0071] 由于本发明在门限签密步骤中采用了秘密共享体制下无证书门限加密和认证的方法,不仅解决了证书管理和密钥托管问题,还解决了由于私钥唯一而导致的单点故障问
题及在电子政务、电子商务和电子军务等应用领域中的保密和认证问题。秘密共享体制下
无证书门限签密方法中,多用户共同分享签密操作权限,不少于门限值个用户可协同完成
签密操作,而少于门限值个用户无法进行合谋。本发明具有安全性好、计算复杂度低等优
点,在网络信息安全领域具有很好的应用前景。

附图说明

[0072] 图1是本发明实施例1的流程图。

具体实施方式

[0073] 下面结合附图和实施例对本发明进一步详细说明,但本发明不限于这些实施例。
[0074] 实施例1
[0075] 以密钥生成中心选择的大素数q,q为2192‑264‑1为例,如图1所示,本实施例的秘密共享体制下无证书门限签密方法步骤如下:
[0076] A、系统初始化
[0077] (A1)密钥生成中心选取一个k比特的大素数q,本实施例采用q为2192‑264‑1,k是安全参数、为有限的正整数,设定G1和G2是两个q阶乘法循环群、e是G1×G1→G2为一个双线性映
射。
[0078] (A2)密钥生成中心选取三个密码学安全的哈希函数H1、H2、H3:H1:{0,1}*×G1×G1λ λ 3 * *
→G1,H2:G1×G1→{0,1} ,H3:{0,1} ×G1 ×G2→Zq ,其中λ表示消息长度,Zq 表示{1,2,…,
192 64 * λ
2 ‑2 ‑2},{0,1}表示由0和1所组成的任意长度的身份,{0,1} 表示由0和1所组成的长度
为λ的消息,H1表示把任意长度的身份和两个G1上的元素联接,通过散列算法变换成G1上的
元素,H2表示把两个G1上的元素联接,通过散列算法变换成长度为λ的中间信息,H3表示把一
*
个长度为λ的消息、三个G1上的元素和一个G2上的元素联接,通过散列算法变换成有限域Zq
上的元素。
[0079] (A3)密钥生成中心从有限域Zq*中随机选取系统私钥s,确定系统公钥ypub:
[0080] ypub=gs∈G1
[0081] 其中g是群G1的一个生成元。
[0082] (A4)密钥生成中心保密系统私钥s,公开系统全局参数L:
[0083] L={G1,G2,e,g,ypub,q,λ,H1,H2,H3}
[0084] B、确定用户公私钥
[0085] (B1)拥有身份ID的密钥分发者随机选取其私钥xD∈Zq*,确定其公钥uD:
[0086]
[0087] (B2)拥有身份Ir的接收者随机选取私钥xr∈Zq*,确定其公钥ur:
[0088]
[0089] C、提取用户部分私钥
[0090] (C1)密钥生成中心确定拥有身份ID的密钥分发者的部分私钥dD:
[0091] dD=ξDs∈G1
[0092] 其中ξD是哈希值H1(ID||ypub||uD),密钥生成中心发送部分私钥dD给密钥分发者,如果e(g,dD)与e(ypub,ξD)相等,密钥分发者接受部分私钥dD,否则,要求重发。
[0093] (C2)密钥生成中心确定拥有身份Ir的接收者的部分私钥dr:
[0094] dr=ξrs∈G1
[0095] 其中ξr是哈希值H1(Ir||ypub||ur),密钥生成中心发送部分私钥dr给接收者,如果e(g,dr)与e(ypub,ξr)相等,接收者接受部分私钥dr,否则,要求重发。
[0096] D、共享密钥
[0097] (D1)设定{U1,U2,…,Un}是n个签密者的集合,n是有限的正整数,密钥分发者随机选取b1,b2,…,bt‑1,构造(t‑1)次多项式:
[0098] f(x)=s0+b1x+b2x+...+bt‑1xt‑1
[0099] 其中t是门限值。
[0100] (D2)密钥分发者确定si:
[0101] si=f(i),i∈{0,1,2,...,n}
[0102] 其中s0=xD,发送si给签密者Ul,Ul∈{U1,U2,…,Un},l∈{1,2,…,n}。
[0103] (D3)密钥分发者确定y0、yj:
[0104]
[0105]
[0106] 广播y0、yj,其中j∈{1,2,...,t‑1}。
[0107] (D4)如果
[0108]
[0109] 签密者Ul接受密钥份额,否则,要求重发。
[0110] E、门限签密
[0111] (E1)签密者Ul从有限域Zq*中随机选取私钥μi,确定中间值ri、vi:
[0112]
[0113]
[0114] 发送ri和vi给密钥分发者。
[0115] (E2)密钥分发者收到ri和vi,确定部分密文r、中间值v、对称密钥κ、加密密文c、哈希值
[0116]
[0117]
[0118] κ=e(v,ξr)∈G2
[0119]
[0120]
[0121] 发送哈希值 给签密者Ul。
[0122] (E3)签密者Ul确定中间值hi:
[0123]
[0124] 发送中间值hi给密钥分发者,其中
[0125] (E4)如果
[0126]
[0127] 成立,密钥分发者接受中间值hi,否则,要求重发。
[0128] (E5)密钥分发者确定部分密文h:
[0129]
[0130] 发送密文σ给拥有身份Ir的接收者:
[0131] σ={r,c,h}
[0132] 在门限签密步骤中,采用了秘密共享体制下无证书门限加密和认证的方法,解决了证书管理和密钥托管问题以及由于私钥唯一而导致的单点故障问题,在电子政务、电子
商务和电子军务等应用领域中的保密和认证问题。秘密共享体制下无证书门限签密方法
中,多用户共同分享签密操作权限,使得不少于门限值个用户协同完成签密操作,而少于门
限值个用户无法进行合谋。这种秘密共享机制下无证书门限签密方法,具有安全性好、计算
复杂度低等优点,在网络信息安全领域具有很好的应用前景。
[0133] F、解签密
[0134] (F1)拥有身份Ir的接收者收到密文σ,确定对称密钥κ、明文m、哈希值
[0135]
[0136]
[0137]
[0138] (F2)如果
[0139]
[0140] 成立,接受明文m;否则,密文无效。
[0141] 实施例2
[0142] 以密钥生成中心选择的大素数q,q为2224‑296+1为例,本实施例的秘密共享机制下无证书门限签密方法步骤如下:
[0143] A、系统初始化
[0144] (A1)密钥生成中心选取一个k比特的大素数q,本实施例采用q为2224‑296+1,k是安全参数、为有限的正整数,设定G1和G2是两个q阶乘法循环群、e是G1×G1→G2为一个双线性映
射。
[0145] (A2)密钥生成中心选取三个密码学安全的哈希函数H1、H2、H3:H1:{0,1}*×G1×G1λ λ 3 * *
→G1,H2:G1×G1→{0,1} ,H3:{0,1} ×G1 ×G2→Zq ,其中λ表示消息长度,Zq 表示{1,2,…,
224 96 * λ
2 ‑2 },{0,1}表示由0和1所组成的任意长度的身份,{0,1} 表示由0和1所组成的长度为
λ的消息,H1表示把任意长度的身份和两个G1上的元素联接,通过散列算法变换成G1上的元
素,H2表示把两个G1上的元素联接,通过散列算法变换成长度为λ的中间信息,H3表示把一个
*
长度为λ的消息、三个G1上的元素和一个G2上的元素联接,通过散列算法变换成有限域Zq 上
的元素。
[0146] (A3)密钥生成中心从有限域Zq*中随机选取系统私钥s,确定系统公钥ypub:
[0147] ypub=gs∈G1
[0148] 其中g是群G1的一个生成元。
[0149] (A4)密钥生成中心保密系统私钥s,公开系统全局参数L:
[0150] L={G1,G2,e,g,ypub,q,λ,H1,H2,H3}
[0151] 其它步骤与实施例1相同。完成秘密共享机制下无证书门限签密方法。
[0152] 实施例3
[0153] 以密钥生成中心选择的大素数q,q为2256‑2224+2192+296+1为例,本实施例的秘密共享机制下无证书门限签密方法步骤如下:
[0154] A、系统初始化
[0155] (A1)密钥生成中心选取一个k比特的大素数q,本实施例采用q为2256‑2224+2192+296+1,k是安全参数、为有限的正整数,设定G1和G2是两个q阶乘法循环群、e是G1×G1→G2为一个
双线性映射。
[0156] (A2)密钥生成中心选取三个密码学安全的哈希函数H1、H2、H3:H1:{0,1}*×G1×G1λ λ 3 * *
→G1,H2:G1×G1→{0,1} ,H3:{0,1} ×G1 ×G2→Zq ,其中λ表示消息长度,Zq 表示{1,2,…,
256 224 192 96 * λ
2 ‑2 +2 +2 },{0,1}表示由0和1所组成的任意长度的身份,{0,1}表示由0和1所组成
的长度为λ的消息,H1表示把任意长度的身份和两个G1上的元素联接,通过散列算法变换成
G1上的元素,H2表示把两个G1上的元素联接,通过散列算法变换成长度为λ的中间信息,H3表
示把一个长度为λ的消息、三个G1上的元素和一个G2上的元素联接,通过散列算法变换成有
*
限域Zq上的元素。
[0157] (A3)密钥生成中心从有限域Zq*中随机选取系统私钥s,确定系统公钥ypub:
[0158] ypub=gs∈G1
[0159] 其中g是群G1的一个生成元。
[0160] (A4)密钥生成中心保密系统私钥s,公开系统全局参数L:
[0161] L={G1,G2,e,g,ypub,q,λ,H1,H2,H3}
[0162] 其它步骤与实施例1相同。完成秘密共享机制下无证书门限签密方法。
[0163] 实施例4
[0164] 以密钥生成中心选择的大素数q,q为2384‑2128‑296+232‑1为例,本实施例的秘密共享机制下无证书门限签密方法步骤如下:
[0165] A、系统初始化
[0166] (A1)密钥生成中心选取一个k比特的大素数q,本实施例采用q为2384‑2128‑296+232‑1,k是安全参数、为有限的正整数,设定G1和G2是两个q阶乘法循环群、e是G1×G1→G2为一个
双线性映射。
[0167] (A2)密钥生成中心选取三个密码学安全的哈希函数H1、H2、H3:H1:{0,1}*×G1×G1λ λ 3 * *
→G1,H2:G1×G1→{0,1} ,H3:{0,1} ×G1 ×G2→Zq ,其中λ表示消息长度,Zq 表示{1,2,…,
384 128 96 32 * λ
2 ‑2 ‑2 +2 ‑2},{0,1} 表示由0和1所组成的任意长度的身份,{0,1} 表示由0和1所组
成的长度为λ的消息,H1表示把任意长度的身份和两个G1上的元素联接,通过散列算法变换
成G1上的元素,H2表示把两个G1上的元素联接,通过散列算法变换成长度为λ的中间信息,H3
表示把一个长度为λ的消息、三个G1上的元素和一个G2上的元素联接,通过散列算法变换成
*
有限域Zq上的元素。
[0168] (A3)密钥生成中心从有限域Zq*中随机选取系统私钥s,确定系统公钥ypub:
[0169] ypub=gs∈G1
[0170] 其中g是群G1的一个生成元。
[0171] (A4)密钥生成中心保密系统私钥s,公开系统全局参数L:
[0172] L={G1,G2,e,g,ypub,q,λ,H1,H2,H3}
[0173] 其它步骤与实施例1相同。完成秘密共享机制下无证书门限签密方法。