2. 河南建筑职业技术学院,河南 郑州 450000
2. Henan Technical College of Construction, Zhengzhou 450000, China
在云计算环境下,云存储系统可为船舶设备或用户提供更加理想的船舶数据存储以及检索服务[1-3],船舶设备或用户将大规模的船舶数据放入云存储系统进行存储后,确保大规模船舶数据存储的安全以及稳定性至关重要[4]。基于此,有必要设计一种合理的云存储机制,并将其应用于大规模船舶数据存储中。
针对云存储问题,近年来国内外学者进行了大量研究,倪红军等[5]设计了基于Flutter开发框架的船舶数据云存储机制,在安全存储机制中添加数据加密模块,分别使用RSA、混沌映射、椭圆曲线加密算法对不同重要程度的船舶数据实施加密,使船舶数据在存储安全性上得到非常可靠的保障。孙僖泽等[6]设计了基于可搜索加密的船舶数据云存储机制,针对当前船舶存储数据泄露问题,设计一种高效可行的船舶数据可搜索加密存储机制,一方面在船舶数据可搜索加密存储机制架构中构造一种较为理想的密态性船舶数据库查询框架;另一方面将AES-CBC密码技术引入到船舶数据可搜索加密存储机制中,对船舶数据实施有效加密,确保船舶数据安全。2种船舶数据存储机制,均可有效保证船舶数据存储的安全性,但是效果还不够理想。
把区块链技术当作底层技术,并充分结合分布式数据存储优势,可为大规模船舶数据提供更具稳定性的存储方案;混沌加密算法具有较理想的数据加密性能,将其应用到船舶数据云存储过程中,可显著提升船舶数据存储安全性。为此,本文基于区块链技术与混沌加密算法对大规模船舶数据云存储机制实施合理设计,更好满足实际需要。
1 船舶数据云存储机制 1.1 基于区块链的大规模船舶数据分布式云存储区块链作为一种新兴的分布式数据存储技术,具有其他数据存储技术所无法比拟的优势,即使在发生网络攻击以及通信被迫中断的条件下,各个区块链节点仍然能够在网络状态上达成一致协议。基于区块链技术对大规模船舶数据实施有效存储,并将一种多级加密安全机制引入其中,可显著提升大规模船舶数据存储的安全性。添加多级加密安全机制后,基于区块链的大规模船舶数据分布式云存储架构如图1所示。该大规模船舶数据分布式云存储架构以存储服务以及多级加密服务两大部分为主。在实际的工作中,船舶设备或用户发出数据存储请求后,需在该存储架构所拥有的存储性节点中,挑选出某一个在线的存储性节点,为船舶数据存储提供服务,并设定一旦由终端发出船舶数据存储请求后,在1 min内就不能再向剩余存储性节点发送船舶数据存储请求。当得到挑选节点的存储请求确认后,先利用多级加密安全机制对要存储的船舶数据实施合理加密,再将加密后的船舶数据交予存储节点存储。值得注意的是当所挑选在线存储性节点,接收到船舶设备或用户发出的船舶数据存储请求后,会按照请求发出时间的先后顺序给予请求答复,只有船舶设备或用户收到存储性节点的答复信息后,才可向其发送相应的待存储船舶数据。当存储性节点完成相应的存储服务后,将船舶数据存储记录上传至区块链。最后由船舶设备或用户评价该次存储服务,所获评价性信息会被当作存储性节点的信用分数,该信用分数可用来对存储性节点的性能实施合理评价。
设计一种面向船舶设备或用户的多级加密数据安全存储机制,使船舶设备或者用户,在存储船舶数据时,能够实现对待存储船舶数据的合理控制,在快速完成相应船舶数据存储工作的同时,有效保障数据的机密以及完整性。设计的多级加密安全机制框架结构如图2所示。该框架以客户端以及云端服务方为主要构成。多级加密安全机制分布在客户端部分。在实际的工作中,客户端可被视作访问层,船舶设备或用户所拥有船舶数据的完整以及机密性由多级加密安全机制进行保障。利用当下拥有的应用服务能够实现一些搜索船舶数据的功能,但是无论处于任何条件下,云端服务方法均不能获取船舶设备或用户所拥有船舶数据的明文。船舶设备或用户通过内部网络对多级加密安全机制实施访问,利用应用服务模块对各种操作执行相应的初始化操作,并通过数据分类与压缩模块对船舶数据实施有效分类与合理压缩,完成分类与压缩操作后,由数据加密模块对船舶数据执行有效加密操作,之后将加密后的船舶数据上传至区块链存储节点实施合理存储,以此保障船舶数据安全。
鉴于混沌映射法在数据加密工作方面的优势,结合以往工作经验,在多级加密安全机制的数据加密模块,使用一种混合混沌加密算法对待存储的船舶数据实施多级加密。该方法通过Lorenz、Wien两种混沌映射获取混沌性序列值当作Wien以及2D-Logistic混沌映射时所需要的迭代性初始值以及干扰值,经过若干次迭代操作后获取多重密钥,对船舶数据明文实施多级加密,可显著提升船舶数据存储安全性。具体的船舶数据加密流程如下:
1)船舶数据明文分块
若用
$ l_i^{} = \left\{ \begin{gathered} {N_{}}\mathop {}\nolimits^{} i < n ,\\ - N\left( {n - 1} \right) + L\mathop {}\nolimits^{} i = n,\\ \end{gathered} \right. $ | (1) |
2)初始以及干扰值生成
完成步骤1后,接下来需对各船舶数据块执行初始迭代序列生成操作,使各船舶数据块拥有各不相同的初始迭代序列。具体做法是通过三维性质的Lorenz、Wien两种混沌映射生成各个船舶数据块的相应迭代初始值以及干扰值,各次迭代产生随机序列值以及序列对的数量分别为3与2,由此,可生成数量为6的混沌性序列值,混沌序列用公式描述为:
$ Y = \left( {{y_1},{y_2},{y_3},{y_4},{y_5},{y_6}} \right),$ | (2) |
N0、T0标记的Lorenz、Wien两个混沌映射系统的初始性迭代次数,在获取到船舶数据明文块首个字节的偏移量θi、T0标后,N0、T0标会被重新定义,具体有:
$ \left\{ \begin{gathered} {\rho _L} = {\theta _i} \div \frac{N}{4} + {N_0} ,\\ {\rho _C} = {\theta _i} \div \frac{N}{4} + {T_0}。\\ \end{gathered} \right. $ | (3) |
其中,ρL、ρc标记的是重新定义后的N0、T0。
由此,各个船舶数据分块的混沌性质序列会被用公式描述为:
$ \begin{gathered} {Y_\rho } = \\ \left( {{y_1}\left( {{\rho _L}} \right),{y_2}\left( {{\rho _L}} \right),{y_3}\left( {{\rho _L}} \right),{y_4}\left( {{\rho _C}} \right),{y_5}\left( {{\rho _C}} \right),{x_6}\left( {{\rho _C}} \right)} \right)。\\ \end{gathered} $ | (4) |
其中:
上述操作完成后,为消除2种混沌映射系统间所拥有的互相关性,从而降低密码攻击等行为给船舶数据带来的安全风险,决定对所获混沌序列执行有效的异或操作,具体的实施过程如下式:
$ \left\{ \begin{gathered} {y_4}\left( {{\rho _C}} \right) = {y_4}\left( {{\rho _C}} \right) \oplus {y_1}\left( {{\rho _L}} \right) ,\\ {y_5}\left( {{\rho _C}} \right) = {y_5}\left( {{\rho _C}} \right) \oplus {y_2}\left( {{\rho _L}} \right),\\ {y_6}\left( {{\rho _C}} \right) = {y_6}\left( {{\rho _C}} \right) \oplus {y_3}\left( {{\rho _L}} \right)。\\ \end{gathered} \right. $ | (5) |
其中,
3)加密序列获取
对
$ \left\{ \begin{gathered} {{Y'}_\rho } = \left( {{y_1}\left( {{\rho _L}} \right),{y_2}\left( {{\rho _L}} \right),{y_3}\left( {{\rho _L}} \right),{y_4}\left( {{\rho _C}} \right)} \right),\\ {{Y'''}_{}}_\rho = \left( {{y_5}\left( {{\rho _C}} \right),{y_6}\left( {{\rho _C}} \right)} \right)。\\ \end{gathered} \right. $ | (6) |
将
$ {\varphi }_{\rho }\text=\left({\varphi }_{1}\left(\rho \right)\text{,}{\varphi }_{2}\left(\rho \right)\text{,}{\varphi }_{3}\left(\rho \right)\text{,}{\varphi }_{4}\left(\rho \right)\right) 。$ | (7) |
其中:
完成以上操作后,对混沌性序列执行混淆处理操作,从而确保序列能够具有高可靠性以及随机性。
$ \left\{ \begin{gathered} {\varphi _3}\left( \rho \right){\text{ = }}{\varphi _1}\left( \rho \right) \oplus {\varphi _3}\left( \rho \right) ,\\ {\varphi _4}\left( \rho \right){\text{ = }}{\varphi _2}\left( \rho \right) \oplus {\varphi _4}\left( \rho \right)。\\ \end{gathered} \right. $ | (8) |
4)船舶数据加密之前的有效预处理
为能与船舶数据明文实施合理异或操作,对即将要执行加密操作的船舶数据序列执行合理的小数点移位以及取模等操作,将加密序列转换到合适的模空间内。
5)对船舶数据明文分块实施合理加密
在对船舶数据明文块执行合理加密操作时,首先取出船舶数据明文内数量为4bit所对应的ASG II码,并将该ASG II码标记为
经上述步骤对船舶数据实施多级加密后,将其发送至存储节点实施有效存储,可显著提升船舶数据存储的安全性。
2 性能测试与分析以某货船在远洋航行过程中所产生的各项船舶数据为实验对象,应用本文机制对其实施合理云存储,验证本文机制有效性。实验中搭建的区块链数据库,包含8个节点,分别用字母
为验证本文机制在大规模船舶数据云存储方面的优势,在该船远洋航行过程中形成的船舶数据文件中,挑选一份有关船舶航行计划的文本文件与一份船舶航行环境图像文件,应用本文机制实施合理存储,并在文件存储工作完成后,由非授权访问客户对存储文件进行访问。有关船舶航行计划以及船舶航行环境图像的原文件内容如表1与图3所示。
由非授权用户访问到的有关船舶航行计划以及船舶航行环境图像的文件如表2和图4所示。从表1、表2、图3和图4可以看出,应用本文机制可以实现大规模船舶数据云存储,并且利用本文机制存储大规模船舶数据后,文本性船舶数据以及图像性质船舶数据,在受到非授权用户访问时分别以乱码形式、不规则模糊图像块拼接图像形式显示,能够有效保障船舶数据存储的安全性。
应用本文机制可以实现大规模船舶数据云存储,显著提升船舶数据存储的安全性,完全可以应对非授权用户对船舶数据的非法访问。但是,在实际的工作中,除了可能会有非授权用户对存储于云端的船舶数据实施非法访问外,还可能会存在网络攻击病毒窃取船舶数据的情形发生,下一阶段在对大规模船舶数据云存储机制的设计中,将以此为切入点进行设计与研究。
[1] |
刘昌平, 刘海. 一种区块链数据的云存储与共享方法[J]. 计算机应用研究, 2021, 38(9): 2600-2603. DOI:10.19734/j.issn.1001-3695.2021.01.0005 |
[2] |
王想, 陈燕俐. 基于以太坊的格上属性基可搜索加密方案[J]. 重庆邮电大学学报(自然科学版), 2021, 33(4): 675-682. |
[3] |
赵海春, 姚宣霞, 郑雪峰. 基于索引-存根表的云存储数据完整性审计[J]. 工程科学学报, 2020, 42(4): 490-499. |
[4] |
王楠, 周旭, 何金伟, 等. 船舶能效数据的处理与分析[J]. 船海工程, 2020, 49(5): 45-48+53. DOI:10.3963/j.issn.1671-7953.2020.05.011 |
[5] |
倪红军, 周巧扣. 基于Flutter开发框架的数据存储访问机制研究[J]. 电子技术应用, 2022, 48(8): 107-110+116. |
[6] |
孙僖泽, 周福才, 李宇溪, 等. 基于可搜索加密机制的数据库加密方案[J]. 计算机学报, 2021, 44(4): 806-819. Sun Xize, Zhou Fucai, Li Yuxi, et al. Database encryption scheme based on searchable encryption mechanism[J]. Journal of Computer Science, 2021, 44(4): 806-819. |