舰船科学技术  2023, Vol. 45 Issue (13): 154-157    DOI: 10.3404/j.issn.1672-7649.2023.13.031   PDF    
大规模船舶数据的云存储机制设计
杨晓庆1,2     
1. 内蒙古科技大学 信息与通信技术学院,内蒙古 乌兰巴托 115141;
2. 河南建筑职业技术学院,河南 郑州 450000
摘要: 为了满足大规模船舶数据存储的安全性以及稳定性需求,设计大规模船舶数据云存储机制。以区块链技术为基础,利用其分布式云存储优势,提出基于区块链的大规模船舶数据存储架构。在此基础上,设计以客户端、云端服务方为主要组成的多级加密安全机制框架,并将多级加密安全机制分布于客户端,在多级加密安全机制的数据加密模块,使用混合混沌加密算法加密待存储船舶数据,加密工作完成后,由船舶设备或用户,发送加密船舶数据至区块链存储节点存储。实验结果表明,将该机制应用于大规模船舶数据云存储工作中,可显著提升船舶数据安全性,使其避免遭受非法访问。
关键词: 区块链     多级加密     船舶数据     云存储     混沌映射     安全存储机制    
Design of cloud storage mechanism for large-scale ship data
YANG Xiao-qing1,2     
1. School of Information and Communication Technology, Mongolian University of Science and Technology, Ulaanbaatar 115141, China;
2. Henan Technical College of Construction, Zhengzhou 450000, China
Abstract: Design a large-scale ship data cloud storage mechanism to meet the security and stability requirements of large-scale ship data storage. Based on blockchain technology and its advantages of distributed cloud storage, a blockchain based large-scale ship data storage architecture is proposed. Encrypt the ship data to be stored using a hybrid chaotic encryption algorithm. After the encryption work is completed, the ship equipment or user sends the encrypted ship data to the blockchain storage node for storage. The experimental results show that applying this mechanism to large-scale ship data cloud storage can significantly improve the security of ship data and prevent it from being accessed illegally.
Key words: blockchain     multi level encryption     ship data     cloud storage     chaotic mapping     secure storage mechanism    
0 引 言

在云计算环境下,云存储系统可为船舶设备或用户提供更加理想的船舶数据存储以及检索服务[1-3],船舶设备或用户将大规模的船舶数据放入云存储系统进行存储后,确保大规模船舶数据存储的安全以及稳定性至关重要[4]。基于此,有必要设计一种合理的云存储机制,并将其应用于大规模船舶数据存储中。

针对云存储问题,近年来国内外学者进行了大量研究,倪红军等[5]设计了基于Flutter开发框架的船舶数据云存储机制,在安全存储机制中添加数据加密模块,分别使用RSA、混沌映射、椭圆曲线加密算法对不同重要程度的船舶数据实施加密,使船舶数据在存储安全性上得到非常可靠的保障。孙僖泽等[6]设计了基于可搜索加密的船舶数据云存储机制,针对当前船舶存储数据泄露问题,设计一种高效可行的船舶数据可搜索加密存储机制,一方面在船舶数据可搜索加密存储机制架构中构造一种较为理想的密态性船舶数据库查询框架;另一方面将AES-CBC密码技术引入到船舶数据可搜索加密存储机制中,对船舶数据实施有效加密,确保船舶数据安全。2种船舶数据存储机制,均可有效保证船舶数据存储的安全性,但是效果还不够理想。

把区块链技术当作底层技术,并充分结合分布式数据存储优势,可为大规模船舶数据提供更具稳定性的存储方案;混沌加密算法具有较理想的数据加密性能,将其应用到船舶数据云存储过程中,可显著提升船舶数据存储安全性。为此,本文基于区块链技术与混沌加密算法对大规模船舶数据云存储机制实施合理设计,更好满足实际需要。

1 船舶数据云存储机制 1.1 基于区块链的大规模船舶数据分布式云存储

区块链作为一种新兴的分布式数据存储技术,具有其他数据存储技术所无法比拟的优势,即使在发生网络攻击以及通信被迫中断的条件下,各个区块链节点仍然能够在网络状态上达成一致协议。基于区块链技术对大规模船舶数据实施有效存储,并将一种多级加密安全机制引入其中,可显著提升大规模船舶数据存储的安全性。添加多级加密安全机制后,基于区块链的大规模船舶数据分布式云存储架构如图1所示。该大规模船舶数据分布式云存储架构以存储服务以及多级加密服务两大部分为主。在实际的工作中,船舶设备或用户发出数据存储请求后,需在该存储架构所拥有的存储性节点中,挑选出某一个在线的存储性节点,为船舶数据存储提供服务,并设定一旦由终端发出船舶数据存储请求后,在1 min内就不能再向剩余存储性节点发送船舶数据存储请求。当得到挑选节点的存储请求确认后,先利用多级加密安全机制对要存储的船舶数据实施合理加密,再将加密后的船舶数据交予存储节点存储。值得注意的是当所挑选在线存储性节点,接收到船舶设备或用户发出的船舶数据存储请求后,会按照请求发出时间的先后顺序给予请求答复,只有船舶设备或用户收到存储性节点的答复信息后,才可向其发送相应的待存储船舶数据。当存储性节点完成相应的存储服务后,将船舶数据存储记录上传至区块链。最后由船舶设备或用户评价该次存储服务,所获评价性信息会被当作存储性节点的信用分数,该信用分数可用来对存储性节点的性能实施合理评价。

图 1 大规模船舶数据分布式云存储架构 Fig. 1 Large scale ship data distributed cloud storage architecture
1.2 多级加密安全机制框架

设计一种面向船舶设备或用户的多级加密数据安全存储机制,使船舶设备或者用户,在存储船舶数据时,能够实现对待存储船舶数据的合理控制,在快速完成相应船舶数据存储工作的同时,有效保障数据的机密以及完整性。设计的多级加密安全机制框架结构如图2所示。该框架以客户端以及云端服务方为主要构成。多级加密安全机制分布在客户端部分。在实际的工作中,客户端可被视作访问层,船舶设备或用户所拥有船舶数据的完整以及机密性由多级加密安全机制进行保障。利用当下拥有的应用服务能够实现一些搜索船舶数据的功能,但是无论处于任何条件下,云端服务方法均不能获取船舶设备或用户所拥有船舶数据的明文。船舶设备或用户通过内部网络对多级加密安全机制实施访问,利用应用服务模块对各种操作执行相应的初始化操作,并通过数据分类与压缩模块对船舶数据实施有效分类与合理压缩,完成分类与压缩操作后,由数据加密模块对船舶数据执行有效加密操作,之后将加密后的船舶数据上传至区块链存储节点实施合理存储,以此保障船舶数据安全。

图 2 多级加密安全机制框架 Fig. 2 Multilevel encryption security mechanism framework
1.3 大规模船舶数据多级加密

鉴于混沌映射法在数据加密工作方面的优势,结合以往工作经验,在多级加密安全机制的数据加密模块,使用一种混合混沌加密算法对待存储的船舶数据实施多级加密。该方法通过Lorenz、Wien两种混沌映射获取混沌性序列值当作Wien以及2D-Logistic混沌映射时所需要的迭代性初始值以及干扰值,经过若干次迭代操作后获取多重密钥,对船舶数据明文实施多级加密,可显著提升船舶数据存储安全性。具体的船舶数据加密流程如下:

1)船舶数据明文分块

若用 $ L $ 标记船舶数据明文的长度,对船舶数据明文执行有效分割操作,将其分解成数量为 $ n $ 的数据块,并用li标记各个船舶数据块的大小。其中, $ i $ 标记的是数据块的编号,不会高于 $ n $ 。首先需对前 $ n - 1 $ 个船舶数据块执行有效划分操作,将其按长度 $ N $ 划分为长度相等的船舶数据块,若产生剩余数据,则将剩余数据当成第 $ n $ 块,对于li有:

$ 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)

N0T0标记的Lorenz、Wien两个混沌映射系统的初始性迭代次数,在获取到船舶数据明文块首个字节的偏移量θi、T0标后,N0T0标会被重新定义,具体有:

$ \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标记的是重新定义后的N0T0

由此,各个船舶数据分块的混沌性质序列会被用公式描述为:

$ \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)

其中: $ {y_1}\left( {{\rho _L}} \right) $ $ {y_2}\left( {{\rho _L}} \right) $ $ {y_3}\left( {{\rho _L}} \right) $ 是由Lorenz混沌映射系统生成的混沌性序列值; $ {y_4}\left( {{\rho _C}} \right) $ $ {y_5}\left( {{\rho _C}} \right) $ $ {y_6}\left( {{\rho _C}} \right) $ 是由Wien混沌映射系统生成的混沌性序列值。

上述操作完成后,为消除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)

其中, $ \oplus $ 标记的是抑或操作。

3)加密序列获取

$ {Y_\rho } $ 执行有效分解操作,获取初值序列以及干扰序列,并将二者分别标记为 $ {Y'_\rho } $ $ {Y'''_\rho } $ ,具体有:

$ \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)

$ {Y'_\rho } $ 当作Wien以及2D-Logistic混沌性映射的初值,由2个系统执行相应迭代操作,获取加密序列,也就是船舶数据块秘钥,获取到的秘钥用公式可描述为:

$ {\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)

其中: $ {\varphi _\rho } $ 标记的是加密序列; $ {\varphi _1}\left( \rho \right) $ $ {\varphi _2}\left( \rho \right) $ $ {\varphi _3}\left( \rho \right) $ $ {\varphi _4}\left( \rho \right) $ 标记的是加密序列中各元素的值。

完成以上操作后,对混沌性序列执行混淆处理操作,从而确保序列能够具有高可靠性以及随机性。

$ \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码标记为 $ T $ ,然后使其与通过步骤3获得的加密序列执行首次异或操作,完成船舶数据明文的首次加密。干扰序列产生的主要作用是能够使整个船舶数据加密过程更具安全性,故使用其对密文执行二次加密干扰,从而获得二次加密密文。

经上述步骤对船舶数据实施多级加密后,将其发送至存储节点实施有效存储,可显著提升船舶数据存储的安全性。

2 性能测试与分析

以某货船在远洋航行过程中所产生的各项船舶数据为实验对象,应用本文机制对其实施合理云存储,验证本文机制有效性。实验中搭建的区块链数据库,包含8个节点,分别用字母 $ A $ 01 $ A $ 08标记,其中 $ A $ 01 $ A $ 07作为区块链数据库大规模船舶数据重量级存储结节存在,通常由比较重要的船舶设备或用户使用, $ A $ 08是级别较轻的存储结节,通常由重要程度相对较低的船舶设备或用户所用,节点 $ A $ 01是区块链数据库众多节点中唯一的一个主节点。

为验证本文机制在大规模船舶数据云存储方面的优势,在该船远洋航行过程中形成的船舶数据文件中,挑选一份有关船舶航行计划的文本文件与一份船舶航行环境图像文件,应用本文机制实施合理存储,并在文件存储工作完成后,由非授权访问客户对存储文件进行访问。有关船舶航行计划以及船舶航行环境图像的原文件内容如表1图3所示。

表 1 2022年3月22日船舶航行计划表 Tab.1 Ship navigation plan on March 22, 2022

图 3 船舶航行环境图像原文件 Fig. 3 Original file of ship navigation environment image

由非授权用户访问到的有关船舶航行计划以及船舶航行环境图像的文件如表2图4所示。从表1表2图3图4可以看出,应用本文机制可以实现大规模船舶数据云存储,并且利用本文机制存储大规模船舶数据后,文本性船舶数据以及图像性质船舶数据,在受到非授权用户访问时分别以乱码形式、不规则模糊图像块拼接图像形式显示,能够有效保障船舶数据存储的安全性。

表 2 非授权用户访问到的船舶航行计划表 Tab.2 List of ship navigation plans accessed by unauthorized users

图 4 非授权访问用户访问船舶航行环境图像文件 Fig. 4 Unauthorized access users accessing image files of ship navigation environment
3 结 语

应用本文机制可以实现大规模船舶数据云存储,显著提升船舶数据存储的安全性,完全可以应对非授权用户对船舶数据的非法访问。但是,在实际的工作中,除了可能会有非授权用户对存储于云端的船舶数据实施非法访问外,还可能会存在网络攻击病毒窃取船舶数据的情形发生,下一阶段在对大规模船舶数据云存储机制的设计中,将以此为切入点进行设计与研究。

参考文献
[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.