Page 297 - 《软件学报》2021年第11期
P. 297

王利朋  等:应用区块链的多接收者多消息签密方案                                                        3623


                    从图 5 可知,随着接收者数量的增加,方案总体执行时间会依次增加.这是由于接收者数量主要会影响用户
                 密钥生成以及签密过程的执行时间.在排除网络延迟等因素干扰后,对于指定数量的接收者,引入多密钥分发中
                 心后,相比较传统的单密钥分发中心,性能损耗控制在 5%以内,但却极大地增强了系统安全性.当接收者数量继
                 续增加时,由于初始化和用户密钥生成操作只需要在系统初始化和用户加入时候执行一次,解签密步骤又是并
                 发执行的,签密过程的执行时间占总体执行时间的份额会逐渐增加.因此,当接收者数量较大时,系统性能瓶颈
                 之一是签密步骤,这也给后续的优化指出了一种可行的方向.
                    从图 6 可知,初始化步骤占用总体执行时间的百分比最多,接近 60%,但是初始化步骤只需要在系统启动时
                 执行一次.签密步骤占用时间百分比大约为 10%,而解签密步骤占用的时间接近 20%.表 4 中给出的签密步骤时
                 间复杂度为(58n+29)T m ,而解签密步骤为 203T m ,签密步骤要比解签密步骤计算复杂度低 1 倍左右,这与仿真结果
                 接近.对于给定的配置参数,密钥更新阶段占用的时间不到 5%,具有较高的执行效率.在实际场景中,密钥更新步
                 骤可以由 KGC 异步执行,在系统空闲时,由 KGC 在后台异步更新密钥,以降低对系统可用性的影响.

                 8.2   基于区块链的密钥更新方案分析
                    在考察基于区块链的时间同步方案时,首先需要考察同步更新的及时性,也就是说,如果设定周期 T 为 30s,
                 该同步方案能否在周期到来时及时触发同步操作.
                    区块链采用以太坊,采用的库为 Etherscan Ethereum Developer  APIs,该库通过向 Etherscan 服务器端发送
                 GET/POST 请求来获得以太坊公链信息,而且服务器端 1s 最多接收 5 次请求.
                    以太坊节点分为全节点和轻节点,这两种节点均包含区块头信息.由于区块头包含了算法所要用到的区块
                 高度以及时间戳信息,因此原则上这两种节点均能满足算法要求.在将本文算法应用在实际场景中时,可以有以
                 下 4 种部署架构:第 1 种是 KGC 节点全部部署成全节点;第 2 种是 KGC 节点全部部署成轻节点;第 3 种是选择
                 一些节点部署为全节点,KGC 节点访问这些全节点以获取区块信息;第 4 种是选择一些节点部署为轻节点,
                 KGC 节点访问这些轻节点以获取区块信息.一般来讲,引入区块链后,这 4 种架构所耗费的额外存储资源和计算
                 开销依次降低,但其对应的安全性也随之下降.因此在选择部署架构时,需要根据实际应用场景进行选择.
                    实验仿真部分选择了第 3 种架构进行部署,这里的 Etherscan 服务器相当于以太坊中的全节点.在某些计算
                 资源紧缺的业务场景中,可以将某一台服务器部署为以太坊全节点,其他 KGC 服务器与其进行交互,组成一个
                 安全域.当需要增加 KGC 时,尤其是需要异地部署多个 KGC 服务器时,可以通过部署多个安全域进行实现,这种
                 部署架构具有良好的可扩展性.此外,这种部署方案可以只让全节点服务器对外网暴露,其他 KGC 服务器与该
                 全节点服务器形成一个安全内网,实现内外网分离,以提升系统的安全性.最后,在这种部署方案中,以太坊的计
                 算和存储开销只由全节点承担,可以减少其他 KGC 节点的资源消耗.虽然该全节点服务器有可能会成为安全瓶
                 颈,但是在实际应用时,全节点服务器可以采用内外网分离等措施进行安全加固.此外,用户还可以根据不同应
                 用场景下不同安全等级要求,从 4 种部署架构中选择一种部署方案.
                    由于以太坊的出块周期为 15s,所以实验设定的周期均为 15s 的倍数.给定周期 T,重复采样 25 次,相关实验
                 结果如图 7 所示.对周期 T 对应的 25 次采样时间求解平均值 t ,并计算误差百分比 |T −                   t  | /T ,实验结果如图 8
                 所示.
                    从图 7 可知,当周期 T 为 15s 时,触发更新动作的时间在 1s~60s 范围内波动;当指定的周期 T 增加时,尤其是
                 大于 50s 后,其触发时间均在[T−50,T+50]内波动.这说明在采用本文提出的周期更新方案时,需要能够容忍 50s
                 的时间误差.从图 8 可知,当周期 T 为 150s,误差百分比为 1.5%;随着设定周期 T 的增加,其误差百分比呈下降趋
                 势;当 T 为 1 550s 时,误差低于 1%.根据上述分析可以推知:随着周期 T 的增加,其误差百分比还会继续下降.
                    需要说明的是,当 T=550s 时,其误差百分比不到 0.1%,明显低于两侧.之所以出现该现象,是由于当对周期
                 T=550s 连续采样 25 次并求解平均值 t 时,在这 25 次连续采样时间间隔中,可能由于以太坊公链网络通信状况
                 较为良好等原因,导致以太坊产块较为及时,使得实验得到的误差百分比较 T=350s 和 T=750s 这两个时刻低.尽
                 管如此,从理论上分析,当 T=350s 和 T=750s 时,允许的时间误差百分比最大应该为 50/350×100%=14%和
   292   293   294   295   296   297   298   299   300   301   302