清扫机器人避障系统区块链私钥分片存储方法
2022-11-21丁红发
王 祥,罗 亚,丁红发
(贵州财经大学,贵州 贵阳 550025)
1 引言
区块链是目前计算机技术中最全面也是最安全的数据库[1],在此数据库中包含多种计算机技术,例如点对点网络技术、数据加密算法、智能合约技术以及共识机制技术等,避障系统区块链就是将机器人系统中的有用数据进行分布式保存[2],同时在智能合约的基础上生成系统机器人与外界物体之间的关联[3],进而完成避障。在数据量较大且系统结构十分复杂的避障系统中利用区块链技术得出的私钥安全性更高,区块链私钥通常以钱包的形式进行保存,且区块链的钱包共划分成冷钱包、在线钱包以及本地钱包几种,但这种私钥存储方法具有安全性较低以及成本较高的问题,因此针对避障系统区块链私钥的保存方法展开研究。
文献[4]在共识节点的协助下利用门限算法处理区块链中的私钥数据,然后在共识节点的基础上将私钥数据进行分类,同时将私钥划分到各个相应节点进行保存,最后当用户需要提取私钥时,直接利用分片的私钥在拉格朗日插值算法下提取出私钥,完成私钥的存储,实现区块链私钥的分片存储。文献[5]将系统内数据进行加密后,立即将私钥分配给用户,为加强私钥的安全,首先对区块链中的恶意节点进行攻击度的概率计算,以及攻击节点数量的计算,其次在所有被攻击节点中选取出概率最大的节点,进而计算出每个节点可进行分配的私钥数量,从而实现区块链私钥的分片存储。以上两种方法在对私钥进行存储前没有对用户身份进行验证,加大私钥被盗取的风险,使得私钥不完整,进而降低私钥的恢复率,也加长嵌入时间,使得私钥嵌入波动幅度大。无法保证私钥存储过程的安全,极易暴露私钥的存储位置。文献[6]首先利用区块链技术并结合数字签名方法进而限制用户访问,排除可能为不法分子的用户,在此基础上使得系统内节点保持一致,最后通过有序数组对私钥进行存储,实现区块链私钥的分片存储,该方法虽对用户进行限制,但筛选过程过于笼统,极大概率漏掉一些伪装极强的违法用户,导致在存储过程中需要抵抗盗取私钥的用户以及寻找缺失的私钥,进而加长存储时间,存在私钥储存延时长的问题。
为了解决上述方法中存在的问题,提出清扫机器人避障系统区块链私钥分片存储方法。区块链保障数据安全性和完整性的核心就是密码学技术,该技术就是针对数据库中每个节点生成节点专属的私钥。研究表明,所设计方法具有较好的分片存储性能。
2 用户身份筛选
为保证数据库的安全,现通过参与者间的合作生成私钥并完成签名,进而极大降低单点攻击问题,首先对用户的身份进行筛选,将不安全因素进行初步排除[7],在环签名的基础上将区块链中用户划分成签名者、PKG(Private Key Generation,私钥生成)群成员以及签名环者三种身份,且每个用户身份均代表系统中的节点,其中签名者代表的是在避障系统中区块链必须进行签名的节点,并将所有可用的已签名节点与其他两种身份进行连接构成环签名,签名环代表的是在避障系统区块链中任意抽取可帮助签名者进行环签名的身份,但这种身份的用户不了解自己可在哪种节点下进行签字,PKG 群成员指得是在避障系统区块链中任意挑选的可为前两种身份分配密钥的身份,此算法的流程图,如图1所示。
图1 基于环签名的区块链隐私保护算法架构图Fig.1 Architecture of Blockchain Privacy Protection Algorithm Based on Ring Signature
根据图1 可知,在该算法中首先需要将参数进行初始化处理,并进行系统选取以及签名等共计三步计算,其过程为:
2.1 参数初始化处理
假设此算法中q阶的循环加法和乘法群分别为G1和G2,其中G1的生成元为E,生成元E中含有双线性映射e,其表达式为:
循环群中包含哈希函数H1和H2,则两函数分别为:
由于避障系统区块链内的各个节点均可形成PKG 群,所以此过程中各个据点均需要有专属的私钥Si,继而计算出相应的公钥Pi,表达式为:
假设避障系统区块链节点与PKG 之间存在联系,针对区块链中第i个节点的PKG,该节点与PKG关系如下所示:
2.2 系统选取
若区块链中的签名者为IDi,真实的签名者可任意抽取成员列表内的n个成员签名环L,其表达式为:
同时在PKG 集合内任意抽取m个密钥,将其组合形成集合C,在抽取过程中不可重复抽取,否则需要重新选取。
2.3 生成密钥以及签名
(1)当PKG集合表示环L内各个节点ID的公钥时,其表达式为:
同时将其公钥利用安全信道传输给各个节点ID。
(2)当PKG集合表示实际签名者的节点时,其ID表达式为:
式中:Qu—相应ID的公钥;Si—区块链中的相应私钥。
(3)针对需签名的信息m,签名者的节点ID需要提前为环成员选取n-1个整数xi,并将xi视为秘密值Ui,其表达式为:
式中:Ui—秘密值;xi—随机整数;E—生成元。
在选取秘密值的过程中需要保证Ui内不能出现重复的xi值,否则需要重新选取。
则哈希函数的输出值为:
式中:Yi—哈希函数的输出,且i∈{1,2,…,n} 。
(4)在节点IDu中随机选取整数xu,并求解出秘密值Uu,其表达式为:
式中:Uu—节点IDu的秘密值;Ui—节点IDi的秘密值。
式(10)中的整数xu不可重复出现,否则需要重新选取。则节点IDu的哈希函数输出值为:
(5)为节点IDu任意选取出一个半径r,且半径的取值范围为r∈{0,1}*,则节点IDu的公共系统参数P的公式为:
区块链的体积为:
式中:Dk—环成员中的参数。
2.4 签名验证
(1)为用户分配完身份后需要对用户签名进行验证,在验证过程中,若签名成立则验证成功,该签名为真实有效。
(2)签名验证通过后需对签名者身份进行验证,若身份验证通过,则将秘密信息等数据透露给验证通过的签名者,完成签名验证。
3 私钥储存方法
经过加密后的系统数据需要用特定的私钥进行解密从而获取信息,如何保存私钥是一大问题,为将私钥的安全性提升到最高,需要对私钥的储存方式进行加强,因此将私钥嵌入到载体图像的水印信息中进行保存从而实现安全加强,该方法的基本流程,如图2所示。
图2 私钥嵌入图像流程图Fig.2 Flow Chart of Private Key Embedded Image
该方法可能被不法分子发现并提取秘密信息,从而泄露秘密信息,因此需要对水印部分的信息增加随机数进而加强防范,同时将其转化为二进制矩阵的形式并增加纠错码,进而将私钥进行隐藏,使得该方法在传输中降低误差,且极大地提高私钥的安全性。
3.1 水印嵌入
将私钥嵌入水印区域前,其位置的选取十分重要,必须选择安全性较高以及对载体质量无影响的位置,因此需要排除可轻易被不法分子提取私钥的位置以及嵌入私钥后图像会出现失真等影响图像质量的位置[8]。
为保证嵌入的质量,选取鲁棒性较好的离散小波变换进行嵌入,图像经过一级小波变换随之生成水平HL1、垂直LH1、对角线HH1以及低频分量LL1等4个小波系数矩阵,其中,1代表一级的小波变换,由于低频部位具有较好的鲁棒性,所以选取低频部位进行信息嵌入,为降低数据量,需进一步进行小波分解处理[9-10]。
为忽略噪声以及图像压缩等带来的影响,可利用鲁棒性较优越的信号处理方法—量化索引调制算法(QIM)进行信号处理,此算法的过程为:
第一步,将经过离散后的低频系数为a×b的矩阵标记为LL3,其中3 为三级小波变换,将LL3 进行转换,转换成维数是N的行向量,并将其分成n组,生成维数为n的组行向量为防止组数对算法的鲁棒性产生影响,经过多次迭代后生成的行向量表达式为:
第二步,在行向量uk内将偶数项记为向量x,奇数项标记为向量y,则向量x和y模的表达式分别为:
式中:lx—向量x的模;
ly—向量y的模。
第三步,假设QIM量子因子为z,且z=lx/ly,则QIM量化函数表达式为:
式中:m—图像中的水印信息;Δ—QIM 量化函数的参数量化长度;Q—QIM。
第五步,将所有可进行分组的系数和向量视为具有水印信息图像的低频分量,最后将已进行处理和未进行任何处理的水印图层进行融合生成私钥水印图像,这种嵌入方式即可保证私钥安全性最高又可分层储存私钥。
3.2 私钥提取
私钥的嵌入和提取是相对称算法,因此在提取私钥过程中仍需对载体图像进行三级变换处理,进而生成奇数项向量和偶数项向量
由于在储存途中私钥在水印信息中经过伪装,因此从水印信息中提取出私钥后还需对其进行纠错码的解码处理,此时的水印信息仍是矩阵形式,还需要将其转换为私钥的原本形式,排除格式中的随机数即可。
具体的提取过程为将载体图像的图层进行小波变换处理,利用结果建立向量化比生成水印信息,针对水印信息计算出纠错码并将其转换成水印格式,最终提取出私钥。
4 实验与结果
为了验证清扫机器人避障系统区块链私钥分片存储方法的整体有效性,分别采用所提方法、文献[4]方法和文献[5]方法进行嵌入时间波动程度、私钥恢复率以及私钥储存延时的测试,测试结果如下:
4.1 嵌入时间波动程度
将私钥嵌入到图层中需要一定时间,但时间的长短决定嵌入的优劣,嵌入时间过短会出现嵌入不完全,安全性过低等问题,嵌入时间过长会大大降低效率也会导致图像出现失真等情况,经过多次迭代后计算出嵌入的平均嵌入时间,即最优嵌入时间,利用三种方法对私钥进行水印嵌入,比较三种方法得出的时间与最优嵌入时间之间的波形情况,实验结果具体情况,如图3所示。
图3 三种方法嵌入时间波动结果Fig.3 Embedding Time Fluctuation Results of Three Methods
根据图3经比较后发现,文献[5]方法完全偏离最优嵌入时间,且远远高于最优嵌入时间,文献[4]方法的嵌入时间虽强于文献[5]方法,且一直在最优嵌入时间附近波动,但该方法的嵌入时间上下浮动较大,不利于嵌入效果,反观所提方法,不仅一直围绕最优嵌入时间波动,且所提方法在各个实验样本下的嵌入时间均无较大差别,时间幅度也很小,这是因为所提方法在进行私钥分层存储前对用户的身份进行验证,未通过验证的用户不可进区块链数据库,进而加强数据库的安全,不必担心在嵌入途中被不法分子盗取密钥,从而减少防范时间,提高嵌入效率,降低嵌入时间波动。
4.2 私钥恢复率
私钥的储存包含储存以及提取两部分,因此判断私钥储存性能的优劣不仅需要看存储的性能,也要测试最后私钥的恢复程度。在区块链中节点会不断更新出全新的节点,节点的增加会影响私钥的恢复程度,选取不同程度更新率通过三种方法进行私钥恢复,判断三种方法在各个更新率下的私钥恢复率,得出最优存储方法。不同方法的私钥恢复率结果,如图4所示。
图4 不同方法的私钥恢复率结果Fig.4 Private Key Recovery Rate Results of Different Methods
根据图4可知,文献[4]方法和文献[5]方法随着节点更新率的升高,其私钥恢复率越来越低,这两种方法在更新率为16%时的私钥恢复率已经为0,说明文献[4]方法和文献[5]方法在16%更新率时私钥存储方法已经失效,无法从水印信息中提取私钥,所提方法随着更新率的增加其私钥恢复率虽有所下降,但该方法最低恢复率为也高达0.79,远高于其它两种方法,可证明所提方法是三种方法最可取的私钥储存方法,即所提方法的私钥恢复率最高。
4.3 私钥储存延时
在存储私钥的过程中,为进一步提升私钥的安全性,私钥通常是分成多个碎片进行保存,当身份通过验证的用户进行存储私钥时,此时区块链中会互相告知其它节点,各节点相对应的私钥碎片会相互分享,进而在完美伪装私钥的同时保证私钥储存的完整性,碎片在分享过程中会出现延时,即在一定大小节点下需要跳跃的数量。
选取一定数量不同规模的网络节点,测试在所提方法、文献[4]方法以及文献[5]方法下的所需的跳数,如图5所示。
图5 三种的私钥储存延时结果Fig.5 Storage Delay Results of Three Kinds of Private Keys
根据图5数据可知,网络节点的大小对延时有一定影响,随着节点的增大跳数会越来越高,延时会随之增加,存储效率随之下降,其中文献[5]方法的时间延时尤为严重,文献[4]方法对比文献[5]方法延时虽有所改善,但延时结果仍不理想,还会极大影响载体图像的质量,所提方法是三种方法延时最少的,不会过度影响图像质量,也不会太过降低存储效率,因此证明所提方法的优越性。
5 结束语
目前数据的加密技术日益完善,其中私钥的存储还需进一步提高,因此提出清扫机器人避障系统区块链私钥分片存储方法,该方法首先对用户身份进行筛选,其次基于图像水印形式将私钥进行嵌入,实现区块链私钥分片存储,解决了嵌入时间波动大、私钥的恢复率低以及私钥储存延时长的问题,使得加密技术登上一个全新的台阶。