Page 285 - 《软件学报》2021年第11期
P. 285
王利朋 等:应用区块链的多接收者多消息签密方案 3611
3 方案步骤
3.1 系统架构
本文方案的系统架构图如图 1 所示,方案中共有 3 种角色,分别是 KGC、发送方(sender)和接收方(receiver).
首先,KGC 执行初始化操作,生成系统主密钥等信息,然后负责为发送方和接收方生成公私钥信息,但 KGC 并不
负责托管公私钥信息.发送方接收到明文信息后,对其执行签密操作,并将密文信息发送至接收方.接收方收到
密文信息后,执行解密操作得到明文信息,然后利用发送方和接收方的公钥等信息对解密后的信息进行校验.
KGC 由一组节点构成,能够周期更新各自的子秘密信息,以抵抗对应的 APT 攻击.
主密钥 明文
1. Setup
2. KeyGen 2. KeyGen 私钥
KGC 发送者
公钥
6. UpdateKey 3. SignCrypt
密文
广播
2. KeyGen 2. KeyGen 公钥
接收者
私钥
4. UnSignCrypt
5. VerifySign
明文
Fig.1 System framework
图 1 系统架构
为了更好地理解本文提出的方案,下面表格定义了本文算法所采用的符号,见表 1.
Table 1 Notations of the proposed scheme
表 1 本文方案的符号表示
符号 含义 符号 含义
KGC 密钥分发中心 P G 的生成元
KS i 第 i 个密钥服务器 n 密钥服务器总个数
ID 用户身份信息 t 合成系统主密钥所需最少密钥服务器个数
k 系统安全参数 m 明文信息
γ 用户私钥信息 L m 明文 m 的长度
κ 用户公钥信息 L l 用户 ID 的长度
p 大素数 ρ 用户的个数
G 加法循环群 s 系统主私钥
Params 系统公开参数 P pub 系统主公钥
s i KS i 的私钥信息 k i KS i 的公钥信息
M 待签密消息集合 ID R 接收者的身份集合
3.2 系统实现
3.2.1 初始化(Setup)
KGC 负责执行本步骤,在本方案中,KGC 由多个密钥服务器构成.设定密钥服务器集合为{KS 1 ,KS 2 ,…,KS n },
共有 n 个密钥服务器,消息发送者只需要收到 t 个服务器的正确应答消息,即可计算得到系统主密钥信息.设定
循环群 G 的阶数为 p,生成元为 P,其中,p 为大素数.
定义抗碰撞密码学单向哈希函数为
Z
Z
H 1 :{0,1} × l L G → Z p ,H 2 :{0,1} × l L {0,1} × l L {0,1} L m + | p * | × G → Z p ,H 3 :{0,1} × l L G → {0,1} L m + | p * | ,