简要介绍
文献【1】首次提出无证书公钥密码学的概念,在BDH困难问题下证明了基于对的无证书公钥加密(CL-PKE)的安全性。其中包含了无证书密钥生成的过程。
一、研究动机
1、PKI的缺点。
为了保证公钥的真实性,PKI通过证书向用户提供关于公钥和相应私钥持有者的身份之间关系的保证。本质上是CA对用户公钥的签名。但证书管理(撤销、存储、分发、验证)成本较高。
2、IBC的缺点。
文献【2】首先提出基于身份的公钥密码体制(ID-PKC)。在ID - PKC中,实体的公钥直接来源于其身份标识符、邮箱等。私钥由一个被称为私钥生成器( PKG )的可信第三方为实体生成。 尽管消除了对证书的需求,但对PKG的依赖导致了密钥托管问题。PKG可掌握任何实体的公钥。
3、CL-PKC的优势
使用无证书认证的消除了证书的需求并解决了密钥托管问题。
二、预备知识
(一)双线性映射。
(1)
G
1
\mathbb{G}_1
G1是q阶加法群,
G
2
\mathbb{G}_2
G2是q阶乘法群,
P
P
P是
G
1
\mathbb{G}_1
G1的生成元。
(2)双线性映射:
e
:
G
1
×
G
1
→
G
2
e: \mathbb{G}_1 \times \mathbb{G}_1 \to \mathbb{G}_2
e:G1×G1→G2。 双线性映射具体性质参考:密码学:双线性映射
(二)BDH困难问题:
三、CL-PKE介绍
算法 | 输入 | 输出 | 执行者 |
---|---|---|---|
1、Setup | 安全参数 κ \kappa κ | 系统参数 p a r a m s params params 和主私钥 s s s | 算法由KGC执行,且主私钥s只由KGC掌握 |
2、Partial-Private-Key-Extract | 系统参数 p a r a m s params params,主私钥 s s s,实体A的标识符 I D A ID_A IDA | 部分私钥 D A D_A DA | 算法由KGC执行,并将部分私钥 D A D_A DA通过安全信道发给实体A |
3、Set-Secret-Value | 系统参数 p a r a m s params params,实体A的标识符 I D A ID_A IDA | A的秘密值 x A x_A xA | 算法由用户A执行。 |
4、Set-Private-Key | 系统参数 p a r a m s params params,实体A的部分私钥 D A D_A DA,A的秘密值 x A x_A xA | 完整私钥 S A S_A SA | 算法由用户A执行。 |
5、Set-Public-Key | 系统参数 p a r a m s params params,A的秘密值 x A x_A xA | 公钥 P A P_A PA | 算法由用户A执行。 |
6、Encrypt | 消息 M M M,A的公钥 P A P_A PA,A的标识符 I D A ID_A IDA | 密文 C C C,或代表失败的空符号 ⊥ \perp ⊥ | |
7、Decrypt | 密文 C C C,私钥 S A S_A SA | 明文 M M M,或代表失败的空符号 ⊥ \perp ⊥ |
文献【1】中不强调公钥和私钥生成时间的先后顺序,即4、5的先后顺序
四、安全模型
(一) 敌手能力
挑战ID为
I
D
c
h
ID_{ch}
IDch。
I
G
\mathcal{IG}
IG为BDH参数生成器。
1、Extract partial private key of A:
2、Extract private key of A:
(1)不能询问
I
D
c
h
ID_{ch}
IDch的私钥
(2)A的公钥未被替换的情况下,可以询问A的私钥。
若公钥被替换,???
3、Request public key of A:
4、Replace public key of A:
因为公钥未与证书绑定,存在公钥被替换的风险。
A既不能在挑战阶段之前替换挑战身份 I D c h ID_{ch} IDch的公钥,也不能在某个阶段为 I D c h ID_{ch} IDch提取部分私钥-。因为这将使A能够在公钥下接收挑战密文,并为其计算私钥。
5、Decryption query for ciphertext C and entity A
(二)敌手分类
Type Ⅰ 型敌手(替换公钥):
( 1 )
A
Ⅰ
\mathcal{A}_Ⅰ
AⅠ 在任何时候都不能提取
I
D
c
h
ID_{ch}
IDch的私钥。
( 2 ) 如果对应的公钥已经被替换,
A
Ⅰ
\mathcal{A}_Ⅰ
AⅠ不能请求任何身份的私钥。
( 3 )
A
Ⅰ
\mathcal{A}_Ⅰ
AⅠ既不能在挑战阶段之前替换挑战身份
I
D
c
h
ID_{ch}
IDch的公钥,也不能在某个阶段提取
I
D
c
h
ID_{ch}
IDch的部分私钥。
( 4 ) 在阶段2中,
A
Ⅰ
\mathcal{A}_Ⅰ
AⅠ无法对用于加密
M
b
M_b
Mb的身份
I
D
c
h
ID_{ch}
IDch和公钥
P
c
h
P_{ch}
Pch组合的挑战密文
C
∗
C^*
C∗进行解密查询。
Type Ⅱ 型敌手(获得主密钥
s
s
s)
这样的敌手
A
Ⅱ
\mathcal{A}_Ⅱ
AⅡ可以访问万能钥匙,但不能替换实体的公钥。给定万能钥匙,敌手
A
Ⅱ
\mathcal{A}_Ⅱ
AⅡ可以为自己计算部分私钥。它还可以请求公钥,进行私钥提取查询和解密查询,两者都是对其身份的选择。对这类敌手的限制是:
( 1 )
A
Ⅱ
\mathcal{A}_Ⅱ
AⅡ在任何时候都不能替换公钥。
( 2 )
A
Ⅱ
\mathcal{A}_Ⅱ
AⅡ不能在任意时刻提取IDch的私钥。
( 3 )在阶段2中,
A
Ⅱ
\mathcal{A}_Ⅱ
AⅡ无法对用于加密Mb的身份
I
D
c
h
ID_{ch}
IDch和公钥
P
c
h
P_{ch}
Pch组合的挑战密文
C
∗
C^*
C∗ 进行解密查询。
五、基于对的CL-PKE
(一)基本的CL-PKE方案
验证算法:
(1)在Partial-Private-Key-Extract 中验证部分私钥:
e
(
D
A
,
P
)
=
e
(
Q
A
,
P
0
)
e(D_A, P) = e(Q_A, P_0)
e(DA,P)=e(QA,P0)
(2)在Encrypt 中验证公钥结构:
e
(
X
A
,
P
0
)
=
e
(
Y
A
,
P
)
e(X_A, P_0) = e(Y_A, P)
e(XA,P0)=e(YA,P)
(二)完整的CL-PKE方案
六、证明
(一)引入公钥加密方案HybridPub
(二)引入算法 $\kappa \epsilon$
(三)详细证明过程如下
参考文献``
- Al-Riyami S S, Paterson K G. Certificateless Public Key Cryptography[M]//Laih C S. Advances in Cryptology - ASIACRYPT 2003: Vol. 2894. Berlin, Heidelberg: Springer Berlin Heidelberg, 2003: 452-473.
- Shamir A. Identity-Based Cryptosystems and Signature Schemes[M]//Blakley G R, Chaum D. Advances in Cryptology: Vol. 196. Berlin, Heidelberg: Springer Berlin Heidelberg, 1985: 47-53.