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 * | ,
   280   281   282   283   284   285   286   287   288   289   290