欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 面向高性能计算虚拟数据空间的轻量级数据安全保密方法独创技术8621字

面向高性能计算虚拟数据空间的轻量级数据安全保密方法

2021-01-31 18:43:18

面向高性能计算虚拟数据空间的轻量级数据安全保密方法

  技术领域

  本发明属于高性能计算领域,涉及一种数据安全加密方法,具体涉及一种面向高性能计算虚拟数据空间的轻量级数据安全保密方法。

  背景技术

  当前,中国国家高性能计算环境中存储资源广域分散且隔离自治,大型计算应用迫切需要可支持跨域统一访问、广域数据共享、存储与计算协同的全局数据空间。

  如何解决虚拟数据空间中的高效安全数据迁移是目前亟需解决的问题。虚拟数据空间中数据迁移发生在广域网上,为了保障数据安全性,需要对数据进行加密处理后传输。AES、3DS等算法能够提供强安全性,可用于数据的安全传输。然而,由于虚拟数据空间传输的数据量庞大,部分应用甚至可达TB级乃至PB级。AES算法在加密如此庞大的数据时会造成严重的性能开销,即使使用Intel AES-NI这类专用硬件指令加密也会造成显著性能开销。由于虚拟数据空间要求数据在迁移后能够迅速执行,尽量减少加解密造成的性能开销。因此,亟需一种轻量级的数据安全保障方法。虚拟数据空间用户的数据大多数为专业软件的计算数据,例如天气预报所需的气象数据、生物医学研究使用的基因数据,这类数据在存储时通常以二进制压缩包的形式保存,有其特有的数据格式,通常只能由专业人员使用专业软件进行分析。对于这些数据,不需要像银行账户等敏感数据进行高等级的加密保障,仅需要轻量的安全保障方法。

  发明内容

  本发明的目的是提供一种面向高性能计算虚拟数据空间的轻量级数据安全加密方法,该方法针对高性能计算虚拟数据空间数据的特点,基于乱序数据块重组,使恶意用户无法轻易破解乱序数据,提供基本的数据安全保障,满足高性能计算虚拟数据空间用户需求。

  为达到上述目的,本发明采用的技术方案如下:

  面向高性能计算虚拟数据空间的轻量级数据安全保密方法,包括以下步骤:

  1)切分数据:首先,将数据按固定长度,切分为等长数据块,根据切分的数据块数量chunk_num,生成0~chunk_num之间的不重复随机数序列,保存该序列作为乱序顺序表;

  2)生成元数据:分别将数据块大小,最后一块数据块大小和乱序顺序表写入缓冲区中,生成的元数据,对生成的元数据按照AES算法进行加密得到元数据密文;

  3)写入乱序文件:创建一个空文件作为乱序文件,先将元数据密文大小写入乱序文件中,再写入元数据密文,然后,写入乱序文件的正文数据,按照乱序顺序表顺序,分别将每个数据块写入重组文件的相应位置中;

  4)进行解密。

  本发明进一步的改进在于,数据块长度为1MB。

  本发明进一步的改进在于,切分时,若是最后一块数据小于1MB,则用字符’u0000’填充为1MB的数据块,并记录实际大小。

  本发明进一步的改进在于,进行步骤2)前,先在内存中申请一块大小为sizeof(int)*(2+chunk_num)的数组作为元数据缓冲区。

  本发明进一步的改进在于,步骤4)包括以下步骤:

  (a)读取元数据:读取乱序文件的前4个字节,得到元数据大小;按元数据大小读取元数据AES密文数据,随后按正确的key值,解密元数据AES密文,分别得到数据块大小,最后一个数据块大小和乱序顺序表;

  (b)恢复文件;创建一个新文件作为恢复文件,每次按照数据块大小读取一个数据块,查找乱序顺序表,将数据块写入恢复文件的正确位置中。

  本发明进一步的改进在于,假设乱序顺序表为3,2,5,4,1,则读取乱序文件的第1个数据块后,将第1个数据块写入恢复文件的第3个数据块位置,并依次将乱序文件的第2,3,4,5个数据块写入恢复文件的第2,5,4,1数据块位置处,再根据最后一块数据块大小对数据进行修正。

  本发明进一步的改进在于,假设数据块大小为1KB,最后一个数据块大小为768B,则截取最后一个数据块的前768B个字节进行修正。

  与现有技术相比,本发明具有的有益效果:

  1)本发明通过将原始数据按固定大小切块,将切分后的数据块按随机顺序打乱重组为乱序数据,从而提供轻量级的安全保障方法,满足高性能计算虚拟数据空间用户对性能和安全两方面的需求。相比AES等加密算法,本发明能够显著减少加密时间开销。

  2)本发明减少了加密过程中的数据计算量,相比AES算法显著提高了性能。

  3)本发明提供了基本的安全保障,能够满足高性能计算虚拟数据空间用户的需求。

  附图说明

  图1为本发明的原理图;

  图2为本发明加密后数据格式。

  具体实施方式

  下面结合附图对本发明做进一步详细描述:

  参见图1,本发明的一种面向高性能计算虚拟数据空间的轻量级数据安全保密方法,包括以下步骤:

  1)加密流程

  切分数据。首先,将数据按固定长度,例如1MB切分为等长数据块。最后一块数据可能会小于1MB,为了方便对乱序后的数据进行写入,将其用字符’u0000’填充为1MB的数据块,并记录下其实际大小。

  根据切分的块数量chunk_num,生成0~chunk_num之间的不重复随机数序列。保存该序列作为乱序顺序表,用作接收方恢复乱序数据。

  生成元数据。元数据由数据块大小,最后一块数据块大小和乱序顺序表构成。为了生成元数据,先在内存中申请一块大小为sizeof(int)*(2+chunk_num)的数组作为元数据缓冲区。并分别将数据块大小,最后一块数据块大小和乱序顺序表写入该缓冲区中。在x8664位Linux平台的C语言实现中每个int变量占用4个字节,则元数据大小为4*(2+chunk_num)。对生成的元数据按照AES算法进行加密得到元数据密文。

  写入乱序文件。创建一个空文件作为乱序文件,先写入乱序文件的头数据。头数据包括元数据密文大小和元数据密文。先将元数据密文大小写入乱序文件中,再写入加密后的元数据。之后,开始写入乱序文件的正文数据。按照乱序顺序表顺序,分别将每个数据块写入重组文件得相应位置中。例如,数据块个数为5,生成的乱序顺序表为:3,2,5,4,1。则先从原文件中读取第3个数据块,将其写入乱序文件的第1个数据块位置中,再依次读取第2,5,4,1个数据块,将其写入乱序文件的第2,3,4,5个数据块位置中。

  2)解密流程

  读取元数据。读取乱序文件的前4个字节,得到元数据大小。按元数据大小读取元数据AES密文数据,随后按正确的key值,解密元数据AES密文。分别得到数据块大小,最后一个数据块大小和乱序顺序表。

  恢复文件。创建一个新文件作为恢复文件,每次按照数据块大小读取一个数据块,查找乱序顺序表,将其写入恢复文件的正确位置中。假设乱序顺序表为3,2,5,4,1。则读取乱序文件的第1个数据块后,将其写入恢复文件的第3个数据块位置,并依次将乱序文件的第2,3,4,5个数据块写入恢复文件的第2,5,4,1数据块位置处。再根据最后一块数据块大小对数据进行修正。例如,假设数据块大小为1KB,最后一个数据块大小为768B,则截取最后一个数据块的前768B个字节进行修正,参见图2。

  本发明具有以下优点:

  1)本发明减少了加密过程中的数据计算量,相比AES算法显著提高了性能。

  2)本发明提供了基本的安全保障,能够满足高性能计算虚拟数据空间用户的需求。

  针对高性能计算虚拟数据空间数据的特点,基于乱序数据块重组,使恶意用户无法轻易破解乱序数据,提供基本的数据安全保障,满足高性能计算虚拟数据空间用户需求。相比AES等加密算法,能够显著减少计算开销。

《面向高性能计算虚拟数据空间的轻量级数据安全保密方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)